10/10/2018, 09:29

Xây dựng ứng dụng download cho điện thoại

Em đang xây dựng chương trình ứng dụng tải nhạc cho công ty, nhưng hiện nay em đang dính phải một lỗi mà cũng ko hiểu tại sao nó lại bị thế, bác nào biết xin chỉ giúp:

- Nếu em dùng một số dòng điện thoại đời cao(có trình duyệt hỗ trợ) thì khi click vào thì nó trả về tên file tương ứng: ví dụ: nhac.mp3.
- Nhưng nếu em dùng dòng điện thoại chỉ có Trình duyệt WAP 2.0/xHTML, HTML, thì khi tải về, nó tải luôn file download.php về, mà ko trả file nhac.mp3
- Sau dây là code trong file download.php của em:

$filename1 = "nhac.mp3" ;
header('Content-type: application/octet-stream');
//mở file để đọc với chế độ nhị phân (binary)
$fp1 = fopen($upload_dir.$filename1, "rb");
header('Content-disposition: attachment; filename="'.$filename1.'"');
header('Content-length: ' . filesize($upload_dir.$filename1));
//đọc file và trả dữ liệu về cho browser
fpassthru($fp1);
fclose($fp1);
Mahakaruna viết 11:37 ngày 10/10/2018
Ko phải browser nào cũng hỗ trợ content-type = application/octet-stream đâu bác.
Nhất là trên phone thì càng lộn xộn nữa.
Trên phone còn tùy thuộc vào đó là loại file j và phone j.
Bác ko thể nói là đao file chung chung đc..

vd :
đao file ứng dụng
dòng symbian :
- sis : Content-type: application/vnd.symbian.install
- sisx : Content-Type: x-epoc/x-sisx-app
dòng palm :
chỉ cần Content-type: text/plain
wvncoltd viết 11:45 ngày 10/10/2018
Được gửi bởi Mahakaruna
chỉ cần Content-type: text/plain
text/plain không đúng bác à? nó sẽ mở ra định dạng kiểu text luôn.
Mahakaruna viết 11:44 ngày 10/10/2018
Được gửi bởi wvncoltd
text/plain không đúng bác à? nó sẽ mở ra định dạng kiểu text luôn.
Đó là vd cho file cài đặt/thực thi (ko rõ nó ntn, chỉ thấy qua trên doc)

application/octet-stream là 1 kiểu có thể xem là "chung chung" khi dùng trên PC. Và hầu hết các phone đang được dùng thông dụng hiện tại ở việt nam đều ko hỗ trợ.

Còn các loại file khác thì bác phải tự set lại content type cho chính xác.
Đây là list các content type ứng với extension này, bác thử set cho thích hợp rồi báo kết quả nhé. Đang quan tâm

audio/x-mpegurl m3u
audio/mpegurl m3u
text/vnd.wap.wml wml
application/vnd.wap.wmlc wmlc
text/vnd.wap.wmlscript wmls
application/vnd.wap.wmlscriptc wmlsc
image/vnd.wap.wbmp wbmp
application/java-archive jar
application/x-java-archive jar
text/vnd.sun.j2me.app-descriptor;charset=UTF-8 jad
application/vnd.symbian.install sis
application/vnd.symbian.install sisx
audio/3gpp 3gp
video/3gpp 3gp
audio/x-wav wav
audio/amr amr
audio/amr-wb awb
audio/mpeg mp3
audio/x-midi mid
audio/midi mid
audio/midi midi
application/x-smaf mmf
application/vnd.smaf mmf
application/vnd.mophun.application mpn
application/vnd.mophun.application mpc
application/vnd.eri.thm thm
application/vnd.nok-s40theme nth
wvncoltd viết 11:42 ngày 10/10/2018
Mình đã thử dùng

header('Content-type: audio/mpeg');

Nhưng mà kết quả trả về vẫn chưa được chuẩn lắm, hic.Trả được đúng định dạng, nhưng mà chưa trả đúng tên file, hic
Mahakaruna viết 11:37 ngày 10/10/2018
Tới đây bác phải tự mò tiếp thôi.
ĐT tôi chỉ hỗ trợ GPRS, ko có wifi, nên ko dám test mấy trò đao loát này
Bài liên quan
0