Posez votre question Signaler

(PHP)readfile pb avec IE6

guillaume_74 103Messages postés 18 octobre 2008Date d'inscription 29 juillet 2010Dernière intervention - Dernière réponse le 16 janv. 2012 à 16:33
Bonjour,
J'ai créé un script en php permettant de déposer des fichiers sur un serveur, et de les récupérer avec une fenêtre de téléchargement.
Pour lire le fichier, j'utilise un "readfile".
Tout fonctionne très bien dans les versions de firefox (aucun problème a signaler) tout fonctionne pour IE7 et 8.
Or, lorsque que je travaille avec IE6... j'ai un problème, quand je télécharge un fichier pour l'ouvrir, il me dit:
"Impossible de trouver le fichier "C:\Document And Settings\MyLogin\Local Settings\Tamporary Internet Files\Content.IE5\A6[...]6Y\mon_fichier[1].txt"
et donc... plantage!
Rien a faire... je sais pas si c'est parceque j'utilise "Internet Explorer Collection".
Mon code php est le suivant:
//$document, le nom du document a ouvrir
header("Content-disposition:  attachment; filename=$document");//attachment;
		header("Content-Type: application/force-download");//header("Content-Type: image/jpeg");
		header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
		header("Content-Length: ".filesize(realpath('upload/documents'.$document)));
		header("Pragma: no-cache");
		header("Cache-Control: no-cache, must-revalidate");
		header("Expires: 0");
		ob_end_clean();
		flush();		
		readfile(realpath('upload/documents'.$document));

PS: le problème ne provient pas de realpath (qui est quelque chose que j'ai testé pour voir si c'était le problème...
Si quelqu'un voit de quoi ce problème peut venir...
Lire la suite 

(PHP)readfile pb avec IE6 »

8 réponses
Réponse
+0
moins plus
Ce problème n'est vraiment que sur IE6 ... et inférieur... la, je suis en train de voir s'il y a un autre moyen de télécharger des documents sur le serveur...
Ajouter un commentaire
Réponse
+0
moins plus
Alors la version de IE6 ne prends probablement pas en charge le téléchargement de fichiers. Je te suggère de ne pas trop passer de temps là-dessus, à moins que ton entourage utilise encore IE6 :/ j'en doute.
A mon avis si ton code fonctionne, sur les dernières versions de ie et sur ff, c'est que c pas ça le problème.
C ie(66)6 niahahahahahaaaaa !!!
je blague
Ajouter un commentaire
Réponse
+0
moins plus
Nan mais les clients de ma boite utilisent encore en parti IE6, il faut que le code fonctionne dans la majeur partie des cas... Donc, même si je suis du même avis que toi, je dois faire en sorte que ca fonctionne sur IE6, c'est pour ca... la, je cherche une solution de contournement.

Mais merci^^
Ajouter un commentaire
Réponse
+0
moins plus
Ok mais il me semble que j'avais eu le même souci que toi. essaie de créer un code propre à ie6 qui marche avec ie6 et tu exécute pas ton code qui marche sur les autres navigateurs mais tu exécute un code différent qui marche sur ie6 :
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6' ) !== TRUE)
//fonction IE6
else
// fonction autres navigateurs

après je sais pas si je pourrais aller jusqu'au bout avec toi :)
Ajouter un commentaire
Réponse
+0
moins plus
Aller jusqu'au bout? =)
Alala! Ben merci, c'était ce que j'avais pensé faire.. juste, faut trouver ce qui fonction avec IE6.. d'après mes brève recherche j'ai pu voir "active x" mais appelé avec du javascript (donc jsuis septique^^ ) 'fin bon, jvais bien trouver quelque chose
Ajouter un commentaire
Réponse
+0
moins plus
Moi ctait avec du css que j'avais eu des soucis. Tu as sans doute une longueur d'avance par rapport à moi, je pense que tu y arriveras ;)
Ajouter un commentaire
Réponse
+0
moins plus
Un peu tard mais si ça peut aider quelqu'un ....

if (strstr ($_HTTP_USER_AGENT, "MSIE")) {
header ("Pragma: public");
header ("Expires: 0");
header ("Cache-Control: doit-revalider, post-check = 0, pré-check = 0");
header ("Content-Type: application de téléchargement; name=\"$sFilename\"");
header ("Content-Length: $iTaille");
header("Content-Disposition: attachment; filename=\"$sFilename\"");
header ("Content-Transfer-Encoding: binary");
} else {
header ("Content-Type: application de téléchargement; name=\"$sFilename\"");
header ("Content-Length: $iTaille");
header("Content-Disposition: attachment; filename=\"$sFilename\"");
}
Ajouter un commentaire
Réponse
+0
moins plus
salut,

tu pourrais aussi conseiller aux clients de ta boite d'upgrader vers ie 7 ou +, histoire d'éviter certaines failles de sécurité (et entre autre te faciliter le boulot)

c'est pas pour rien que même microsoft conseille d'upgrader ^^
Ajouter un commentaire
Ce document intitulé « (PHP)readfile pb avec IE6 » 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.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?