Php: forcer le download

[Résolu/Fermé]
Signaler
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
-
Messages postés
69
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
27 juillet 2013
-
Bonsoir tout le monde !!!

j'ai un petit problème pour forcer le download d'un fichier txt en php.

j'ai utilisé pas mal de bout de code donc je vous met celui que j'ai a l'instant t

telecharger.php

<?php 
$mm_type="application/octet-stream"; 
$fichier = '$_GET['fichier']'; 
  
header("Cache-Control: public, must-revalidate"); 
header("Pragma: hack"); 
header("Content-Type: " . $mm_type); 
header("Content-Length: " .(string)(filesize($fichier)) ); 
header('Content-Disposition: attachment; filename="'.basename($fichier).'"'); 
header("Content-Transfer-Encoding: binary\n"); 
  
$fp = fopen($fichier, 'rb'); 
$buffer = fread($fp, filesize($fichier)); 
fclose ($fp); 
  
print $buffer; 
?> 

la page est placée dans le dossier qui contient les fichiers txt.

le lien qui pointe vers cette page
<a href="notes/download.php?fichier=<?php echo ($donnee['reseau']); ?>">download</a>

je ne comprend pas, quand je clique sur le lien, j'ai bien le nom du fichier dans le param url

download.php?fichier=WIN2K8.txt (par exemple)

et page blanche. pas de boite de dialogue pour le téléchargement.

Merci d'avance à tous

6 réponses

Messages postés
69
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
27 juillet 2013
17
A première vue, il y aune erreur sur la ligne 3:
$fichier = '$_GET['fichier']'; 

remplace la ligne en:
$fichier = $_GET['fichier']; 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
12
Merci the_animal

malheureusement toujours le même problème. je me demande si ca ne viens pas de mon serveur...
Messages postés
786
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
3 mai 2016
117
es tu certains d'avoir bien spécifié le bon chemin ? et d'avoir bien le fichier .txt dans le bon emplcament ?

Car tu as une page blanche mais pas d'erreur donc il es probable que pour moi vue les informations que tu as fournit cela soit un problème de chemin de fichier à télécharger
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
12
hi!
j'avais pas vu tas reponse.

Ben pour le chemin je suis sure su'il est good parceque c'est le meme chemin pour visionner le fichier dans le navigateur (ya un icone dl et un icone visualiser, ce dernier fonctionne (a part pour les pdf xD)
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
12
up s'il vous pleaz, un peu d'aide.

j'ai essayé avec tout les headers possibles et tout les bout codes trouvable sur notre bon vielle amis GG
Messages postés
69
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
27 juillet 2013
17
vas voir l'error.log ou mets le code ci-dessous au debut du script et remets ici l'erreur:
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
12
j'ai honte de moi, les logs non actif >.<

et le code erreur ne m'affiche rien...
Messages postés
69
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
27 juillet 2013
17
si tu mets un echo "hello world"; die; au debut de fichier , cela s'affiche bien?
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
12
même pas...
Dans l'access.log apache j'ai ca
GET /projets/f2i/notes/reseau/download.php?fichier=configReseau.txt HTTP/1.1" 500 274 "http://MONIP/projets/f2i/cours/cours_reseau.php" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0
Messages postés
69
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
27 juillet 2013
17
erreur 500 , erreur interne, souvent erreur du codage, il faut que tu vois le log d'erreur dans /var/log/apache2/error.log
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
12
Bon ben ecoute the_animal je te remercie d'avoir pris le temps, pour rien parce que en fait tu as résolu le problème dès le début avec ta première réponse...

A première vue, il y aune erreur sur la ligne 3:

$fichier = '$_GET['fichier']'; 


remplace la ligne en:

$fichier = $_GET['fichier']; 


c'était effectivement ca. Merci encore :D
Messages postés
69
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
27 juillet 2013
17
oui et tu a répondu que "malheureusement toujours le problème" pourtant tu n'as pas modifier
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
12
sisi, même plusieurs fois mais à mon avis vu toutes les modifs que j'ai faites (hier j'avais un autre code ^^) j'ai du le modifier en ayant modif autre chose dans le code avant...

du coup ce matin j'ai repris le code posté plus haut parce que error.log m'a dit la même chose que toi ^^
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
12
Merci encore ;)
Messages postés
69
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
27 juillet 2013
17
ok pas de quoi