Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
<?php
// Test du téléchargement d'un fichier avec reconnaissance du type de fichier
echo "<a href=\"telecharger.php?file=texte.txt&chemin=\">Télécharger</a>";
?>
<?php
// 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($file), ".")) {
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=$Fichier_a_telecharger");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
header("Content-Length: ".filesize($chemin.$file));
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
readfile($chemin.$file);
?>
j'ai zoné les différents forum mais aucune soluce ne marche
quand je clique sur le lien ca m'ouvre la boite de dialogue de telechargement (avec ouvrir - telecharger - annuler) ça me propose de telecharger mon fichier contenant le script avec les "header machin chose" mais pas le fichier voulu (texte.txt)
Oui, et le fichier est vide c'est ça ? Ou il contient des messages d'erreur ? Si oui lesquels ?
Pour le fait que le nom "telecharger.php" c'est normal, vu que c'est le nom du lien, et que tu ne fais pas une redirection mais que tu inclus simplement un autre fichier dans ce download.php. Le navigateur n'a aucun moyen de savoir que tu incluais le fichier texte.txt, vu que tu le fais sur le serveur via un readfile...
Ah ben pourquoi ne l'as-tu pas dit plutôt ? J'avais demandé si le fichier téléchargé était vide
Bon, donc le code php est interprété mais il ne se passe rien. Aucun message d'erreur ?
tout au début du script, afin qu'il reporte toutes les erreurs et qu'on puisse savoir où elle se trouve (genre : fichier inexistant, mauvais chemin, erreur de syntaxe...)