Obecnie pracuję nad skryptem PHP, który pozwala pobierać zawartość multimedialną (wideo, audio, zdjęcia ...) z urządzenia mobilnego, uzyskując dostęp do łącza. (tj. http://www.my-web-site.com/download.php?id=7ejs8ap) Mój skrypt działał bardzo sprawnie, kiedy testowałem go z najnowszymi telefonami (Samsung Galaxy S, iPhone 4S, kilka innych ...), ale wystąpił błąd na moim starym telefonie komórkowym Samsung C3050. Nośniki, które chciałem ściągnąć, to zwykły plik audio mp3, który zwykle łatwo ściągam.Narzędzie nagłówka HTTP "Content-Type: application/force-download" dla urządzeń mobilnych?
Błąd pojawia się jako "Nieznany typ zawartości". Ponieważ moim jedynym nagłówkiem HTTP Content-Type było "application/force-download", próbuję to skomentować i spróbować ponownie. Wtedy to działa. Ale obecnie pytam, co oznacza ten typ treści i czy może być obowiązkowe dla innych użytkowników urządzeń przenośnych. Testowałem bez Content-Type na iPhone 4 i to działa, ale nie jestem pewien tej kompatybilności dla wszystkich urządzeń mobilnych.
Czy ktoś może mi wyjaśnić, jak działa ten typ zawartości, dlaczego nie jest to standardowy MIME lub wszystko inne, co może mi pomóc w upewnieniu się, że jest to opcjonalny typ zawartości dla każdego pobrania, niezależnie od pliku, przeglądarki lub urządzenie, które pobieram?
Dziękuję wszystkim.
tu jest moje nagłówki PHP wysłany:
<?php
//Assume that $filename and $filePath are correclty set.
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$filename.'"');
// header('Content-Type: application/force-download'); Non-standard MIME-Type, incompatible with Samsung C3050 for example. Let it commented
readfile($filePath);
?>
EDIT: Próbowałem tylko z Sony Xperia, a pobieranie nie powiodło się: ja tylko zobaczyć "html zakodowany" bajtów moim pliku I chcesz pobrać. Skąd wiadomo, jakiego typu zawartości muszę użyć, jeśli aplikacja/oktet-stream lub application/force-download nie działa?
Dziękuję za wyjaśnienia. Spróbuję później aplikacji/strumienia oktetowego, a jeśli to nie zadziała, użyję funkcji do wykrycia typu mime z nazwy pliku. Mam nadzieję, że to zadziała w przypadku jakiegoś "specjalnego" pliku, jaki mam * .m4r lub * .dm na specjalne dzwonki na iPhone'a na przykład ... Jeśli nie, zrobię mój własny niechciany przełącznik/obudowę: '( – niconoe
@nioconoe The Najłatwiejszym sposobem wykrycia typu mime dla pliku jest biblioteka fileinfo. W PHP jest to http://www.php.net/manual/en/function.finf-file.php. Możesz także uruchomić plik 'file --mime 'z linii poleceń: –
Co, jeśli sama treść jest stroną html (np. raport html)? – D34dman