Xou
I ♥ rien
Petit soucis avec le forcage d'un téléchargement.
Ici par exemple, j'essaie de forcer le téléchargement sur un zip.
http://www.xyo.be/download.php?file=1
Le forcage se passe bien, mais ce n'est psa le fichier attendu
Si qqun a une idée de comment réussir à faier ce qui faut, ça serait sympa.
Le script se trouve sur le répertoire racine, tandis que vous pourrez le voir, le fichier à télécharger se trouve dans un dossier de la racine, download.
Ici par exemple, j'essaie de forcer le téléchargement sur un zip.
http://www.xyo.be/download.php?file=1
Le forcage se passe bien, mais ce n'est psa le fichier attendu
Si qqun a une idée de comment réussir à faier ce qui faut, ça serait sympa.
Le script se trouve sur le répertoire racine, tandis que vous pourrez le voir, le fichier à télécharger se trouve dans un dossier de la racine, download.
Code:
if($res!=0)
{
$file['id'] = mysql_result($req,$i,"dl_id");
$file['name'] = mysql_result($req,$i,"dl_name");
$file['ext'] = mysql_result($req,$i,"dl_extension");
$file['count'] = mysql_result($req,$i,"dl_count");
$file['way'] = 'download/';
$count = $data['count'];
$count ++;
$data['count'] = $count;
MysqlConnect();
$req_up = sprintf("UPDATE %s SET dl_count='%d' WHERE dl_id='%d' LIMIT 1",
$table['dl'],$file['count'],$file['id']);
mysql_query($req_up) or die ("bug");
mysql_close();
$file2dl = $file['way'].$file['name'];
// on essaie de reconnaitre l'extension pour que le téléchargement corresponde au type de fichier afin d'éviter les erreurs de corruptions
switch(strrchr(basename($file2dl), "."))
{
case "gz": $type = "application/x-gzip"; break;
case "tgz": $type = "application/x-gzip"; break;
case "zip": $type = "application/zip"; break;
case "pdf": $type = "application/pdf"; break;
case "png": $type = "image/png"; break;
case "gif": $type = "image/gif"; break;
case "jpg": $type = "image/jpeg"; break;
case "txt": $type = "text/plain"; break;
case "htm": $type = "text/html"; break;
case "html": $type = "text/html"; break;
default: $type = "application/octet-stream"; break;
}
header("Content-disposition: attachment; filename=$file2dl");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
header("Content-Length: ".filesize($file2dl));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($file2dl);
}