Force download fichier AVI ! - PHP - Programmation
Marsh Posté le 06-08-2008 à 20:23:12
et si tu fais un
header("Content-Type: tutu" );
il se passe quoi ?
Marsh Posté le 06-08-2008 à 22:59:47
Je crois que la vieille looserie, c'est qu'il faut mettre Content-disposition, avec un d minuscule. En tous cas moi j'ai ça, et si j'ai ça c'est qu'il y a une raison
Marsh Posté le 07-08-2008 à 11:24:31
Nan ça change rien xD
Et je ne sais pas comment sniffer le traffic HTTP...
Marsh Posté le 06-08-2008 à 19:52:04
Bonjour à tous,
Je suis webmaster d'un site qui traite de la série Final Fantasy, et je souhaite proposer des vidéos en téléchargements pour les membres. Il y a de cela quelques mois j'avais développé un script de force download, qui marche parfaitement avec tout (musique, jeu), mais pas les vidéos.
La taille du fichier est bien la bonne, mais la vidéo est absolument illisible, j'ai d'abord pensé au content-type, mais impossible quel que soit celui que j'ai utilisé, et même le force download ne marche pas.
D'ailleurs je me rends compte que le script est moyen, mais je l'ai fait au moment où j'apprenais xD
Le script :
<?php
session_start();
if ((isset($_GET['id'])) AND (isset($_SESSION['Login']))) {
$fileid = intval($_GET['id']);
$res = mysql_query("SELECT * FROM Downloads WHERE ID='$fileid'" )or die(mysql_error());
$row = mysql_fetch_assoc($res);
$Catégorie = $row['Catégorie'];
$fileurl = stripslashes($row['Chemin']);
$filename = $row['Nom'];
if (!isset($_GET['Action'])) {
$filesize = @filesize($fileurl);
}
$fileextension = $row['Extension'];
$filename = $filename.$fileextension;
switch ($fileextension) {
Case ".wmv": $ctype = "video/x-ms-wmv"; break;
Case ".zip": $ctype = "application/zip"; break;
Case ".mp3": $ctype = "audio/x-mp3"; break;
Case ".mpg": $ctype = "video/mpeg"; break;
case ".avi": $ctype = "video/x-msvideo"; break;
case ".pdf": $ctype = "application/pdf"; break;
case ".doc": $ctype = "application/msword"; break;
case ".gif": $ctype = "image/gif"; break;
case ".png": $ctype = "image/png"; break;
case ".jpg": $ctype = "image/jpg"; break;
default: $ctype="application/octet-stream";
}
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
header("Pragma: public" );
header("Expires: 0" );
header("Cache-Control: must-revalidate, post-check=0, pre-check=0" );
header("Cache-Control: private",false);
header("Content-Type: $ctype" );
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary" );
header("Content-Length: ".@filesize($fileurl));
set_time_limit(0);
mysql_query("UPDATE Downloads SET nbTel = nbTel+1 WHERE ID='$fileid'" );
$tailleTel = @readfile("$fileurl" ) or die("File not found." );
}
?>
Evidemment si vous avez besoin de plus de détails, pas de problèmes