Attualmente sto lavorando su uno script PHP che consente di scaricare contenuti multimediali (video, audio, immagini ...) dal tuo dispositivo mobile accedendo a un link. (ad esempio http://www.my-web-site.com/download.php?id=7ejs8ap) Il mio script ha funzionato molto bene quando lo stavo testando con il recente cellulare (Samsung Galaxy S, iPhone 4S, altri ...) ma si è verificato un errore sul mio vecchio cellulare Samsung C3050. I media che volevo scaricare erano solo un file audio mp3 che di solito scaricavo facilmente.Utilità dell'intestazione HTTP "Content-Type: application/force-download" per dispositivi mobili?
L'errore sembra essere "Tipo di contenuto sconosciuto". Quindi, poiché la mia sola intestazione HTTP Content-Type era "application/force-download", provo a commentare questo e riprovo. Quindi, funziona. Ma ora, attualmente sto chiedendo cosa significa questo Content-Type e se può essere obbligatorio per gli altri dispositivi mobili. Ho provato senza Content-Type su iPhone 4 e funziona, ma non sono sicuro di questa compatibilità per tutti i dispositivi mobili.
Qualcuno può spiegarmi come funziona Content-Type, perché questo non è un MIME standard o qualsiasi altra cosa che può aiutarmi ad essere sicuro che questo è un Content-Type opzionale per ogni download, qualunque sia il file, il browser o il dispositivo su cui sto scaricando?
Grazie a tutti.
Ecco il mio header PHP inviato:
<?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: Ho appena provato con un Sony Xperia, e il download non ha avuto successo: Vedo solo il "html-encoded" byte di mio file I voglio scaricare. Come posso sapere quale tipo di contenuto devo usare se application/octet-stream o application/force-download non funziona?
Grazie per le tue spiegazioni. Proverò più tardi l'applicazione/octet-stream e se non funziona, userò una funzione per rilevare il tipo mime da un nome file. Spero che questo funzionerà per un file "speciale" che mi piace * .m4r o * .dm per suonerie speciali per iPhone, ad esempio ... In caso contrario, farò il mio interruttore/caso indesiderato: '( – niconoe
@nioconoe The il modo più semplice per capire un tipo mime per un file è la libreria fileinfo.In PHP, è http://www.php.net/manual/en/function.finfo-file.php. Puoi anche eseguire 'file --mime 'da una riga di comando. –
Cosa succede se il contenuto stesso è una pagina HTML? (esempio un rapporto html)? – D34dman