Posez votre question Signaler

[PHP] Problème Force Download version IE

jissé - Dernière réponse le 15 févr. 2008 à 10:23
Bonjour,
Je développe un site web de partage de fichiers, et les utilisateurs qui s'y rendent doivent pouvoir
télécharger les fichiers qu'ils souhaitent par un clic sur un lien du type:
<a href="telechargement.php?chemin_fichier=$chemin_fichier&nom_fichier=$nom_fichier">
Pour le téléchargement, ca va ca fonctionne à la fois sous Firefox et différentes version d'IE de la 6 à la 7.0.6
Mais lors de l'ouverture de la fenêtre de téléchargement, si on choisi d'ouvrir le fichier, et non de le télécharger,
le script plante pour certaines version d'IE (la 6.0.2800 par ex.).
Je mets ci-dessous le code correspondant:
$fichier_chemin = $_GET["fichier_chemin"];
$nom_fichier = $_GET["fichier_nom"];
$nom_fichier_nospace = strtr($nom_fichier," ","_");
//test sur le navigateur
if (eregi('MSIE: space :+[0-9]+\.[0-9]+', $_SERVER["HTTP_USER_AGENT"])) {
header('Content-Type: application/force-download');
header("Content-Transfer-Encoding: application/octet-stream\n");
header('Content-Disposition: attachment; filename="' . $nom_fichier_nospace . '"');
header("Content-Length: ".filesize($fichier_chemin));
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
} else {
header('Content-Type: application/force-download');
header("Content-Transfer-Encoding: application/octet-stream\n");
header('Content-Disposition: attachment; filename="' . $nom_fichier_nospace . '"');
header("Content-Length: ".filesize($fichier_chemin));
header('Expires: 0');
header('Pragma: no-cache');
}
//On ouvre le fichier sur le serveur
$download_file = fopen($fichier_chemin, "r");
//On ouvre la fenêtre de téléchargement du navigateur
fpassthru($download_file);
Voila, donc si quelqu'un pourrait m'aider ca serait sympa, je ne sais pas ou se trouve l'erreur, si c'est dans l'ordre des headesr ou un manque d'infos dans les déclarations des headers.
A noter également que le type d'encodage de la page est l'UTF-8, mais je ne pense pas que cela vienne de ca vu que le Firefox et l'IE que j'utilise pour mes tests sont en ISO et ca fonctionne tres bien...
Merci pour votre aide.
Lire la suite 
Réponse
+0
moins plus
Bonjour,

Il suffit de supprimer les lignes :

header('Expires: 0') ; header('Pragma:...
Ajouter un commentaire
Annonces
 
moins plus
Ce document intitulé «  [PHP] Problème Force Download version IE  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.