Bonjour,
je possède un site dans lequel je présente mes "créations audiovisuelles", et je souhaiterais qu'un simple clic fasse télécharger les fichiers vidéos, au lieu de les lancer dans le navigateur, qui n'arrive généralement pas à les lire.
Je viens de passer mon après-midi sur google, et le consensus tourne autour de l'utilisation d'une page intermédiaire contenant des header, du type :
header("Content-disposition: attachment; filename=$fichier");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($fichier));
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile($fichier);
J'ai testé, ça marche jusqu'à un certain point : le téléchargement se lance, mais systématiquement les fichiers obtenus sont corrompus, et illisibles par quelque logiciel que ce soit... cette solution semble fonctionner sur windows (étant donné mon parcours des forums PC sur le sujet), et je suppose donc que le problème viendrait d'Unix/MacosX... quelqu'un aurait une idée ? je suis complètement paumé là !
Merci !
je possède un site dans lequel je présente mes "créations audiovisuelles", et je souhaiterais qu'un simple clic fasse télécharger les fichiers vidéos, au lieu de les lancer dans le navigateur, qui n'arrive généralement pas à les lire.
Je viens de passer mon après-midi sur google, et le consensus tourne autour de l'utilisation d'une page intermédiaire contenant des header, du type :
header("Content-disposition: attachment; filename=$fichier");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($fichier));
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile($fichier);
J'ai testé, ça marche jusqu'à un certain point : le téléchargement se lance, mais systématiquement les fichiers obtenus sont corrompus, et illisibles par quelque logiciel que ce soit... cette solution semble fonctionner sur windows (étant donné mon parcours des forums PC sur le sujet), et je suppose donc que le problème viendrait d'Unix/MacosX... quelqu'un aurait une idée ? je suis complètement paumé là !
Merci !