PB fonction readfile() chez free [Résolu]

cs_PatX 34 Messages postés mardi 28 décembre 2004Date d'inscription 11 mai 2007 Dernière intervention - 11 mai 2005 à 20:45 - Dernière réponse : cs_PatX 34 Messages postés mardi 28 décembre 2004Date d'inscription 11 mai 2007 Dernière intervention
- 14 mai 2005 à 11:27
Bonjour à tous,



J'ai un problème avec la fonction readfile() : en fait je veux
télécharger un fichier pdf sans que celui-ci s'ouvre dans le
navigateur. Voici mon code :



header("Content-Type: application/force-download");

header("Content-disposition: attachment; filename=".$name);

header("Content-Length: ".$size. "bytes");

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "
GMT");
// always modified

header("Cache-Control: no-store, no-cache,
must-revalidate");
// cache HTTP/1.1

header("Cache-Control: post-check=0, pre-check=0", false);

header("Pragma:
no-cache");
// cache HTTP/1.0

header("Cache-Control:
private");
// IE6 bug fix

header("Content-Transfer-Encoding:
binary");
// we want it in binary

readfile($url);



Si vous voyez une erreur, ou si vous avez une suggestion pour écrire un
script qui permette de forcer le téléchargement, pouvez-vous me le dire
? Apparamment, ce script fonctionne chez un autre hébergeur, mais chez
free, cela passe mal (le résultat, c'est une succession de caractères
bidons). Et le comble, c'est que readfile() ne fait pas partie des
fonctions désactivées sur free.fr.
Afficher la suite 

4 réponses

Répondre au sujet
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 12 mai 2005 à 18:06
+3
Utile
Salut,


header('Content-Type: application/force-download');


header('Content-disposition: attachment; filename='.$name);


header('Content-Transfer-Encoding:
binary');

header('Content-Length: '.$size);


readfile($url);



ça devrait fonctionner. Attention à IE ou Firefox qui (l'un des deux) n'arrive parfois pas à télécharger le fichier...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Anthomicro
cs_PatX 34 Messages postés mardi 28 décembre 2004Date d'inscription 11 mai 2007 Dernière intervention - 12 mai 2005 à 22:38
+3
Utile
http://patxaranonline.free.fr/dl.php?lid=9



Merci de ta réponse, mais ça ne change pas grand chose lol ! Regarde ce
que cela donne (arrête le chargement de la page, sinon, y a des chances
que le browser plante ...)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_PatX
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 12 mai 2005 à 22:53
0
Utile
Hum, t'envoie du code html ou tu fais un echo avant ton premier header, normal que ça foire.



Il ne faut rien envoyer au navigateur avant de faire ça sauf si tu
utilises en haut de page la fonction ob_start() et en bas la fonction
ob_end_flush()



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
cs_PatX 34 Messages postés mardi 28 décembre 2004Date d'inscription 11 mai 2007 Dernière intervention - 14 mai 2005 à 11:27
0
Utile
Le problème, c'est que le script qui force le navigateur à ouvrir la
boite de dialogue de téléchargement fonctionne très bien tel qu'il est
sur des serveurs payants. Donc, les headers fonctionnent correctement.
L'url que je récupère dans le $url est valide (vérifier avec un echo),
donc tout le problème vient de la fonction readfile sur les serveurs de
free, mais la fonction n'est pas désactivée ni limitée sur free.



Alors je me demande comment on peut forcer un download sur les serveurs des sites perso de free ...
Commenter la réponse de cs_PatX

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 et codes sources.

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