Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1580 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  header et force download [resolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

header et force download [resolu]

n°1335796
mechkurt
Posté le 30-03-2006 à 19:33:18  profilanswer
 

dabord, je sais c'est une question qui a été débattu mille fois...
je suis aller faire un tour ici => http://forum-images.hardware.fr/themes_static/images_forum/1/recherche.gif
la solution qui semble bien fonctionner pour tout le monde:

Code :
  1. <?php
  2. header('Content-disposition: attachment; filename='.$_GET['n']);
  3. header('Content-Type: application/force-download');
  4. header('Content-Transfer-Encoding: '.$_GET['ty'].'\n');
  5. header('Content-Length: '.$_GET['ta']);
  6. header('Pragma: no-cache');
  7. header('Cache-Control: must-revalidate, post-check=0, pre-check=0, public');
  8. header('Expires: 0');
  9. readfile('FTP/'.$_GET['n']);
  10. ?>


sachant que $_GET['ty'] le type et $_GET['ta'] la taille  proviennent tout deux des infos de $_FILE (lors de l'upload) precedement stocker en BDD.
le fichier existe sur le serveur et si je fait un print_r($_GET) mon array as bien toute les infos requises
 
maintenant ce qui se passe avec un un fichier text/plain essai.txt 3175 Octets:
-> avec FF vous avez choisi d'ouvrir telecharger.php type de fichier PHP Script, si je le telecharge, il est vide
-> avec IE voulez-vous ouvrir ou enregistrer ce fichier ? telecharger.php PHP Script 3,10 ko, si je le telecharge, il est vide aussi
 
EDIT: je n'utilisais pas la bonne valeur de $_GET pour le nom de fichier, a part ca le code fonctionne tres bien, merci a anapajari d'avoir fait de la maieutique a l'interieur de moi ;)


Message édité par mechkurt le 31-03-2006 à 12:04:07

---------------
D3
mood
Publicité
Posté le 30-03-2006 à 19:33:18  profilanswer
 

n°1335815
nargy
Posté le 30-03-2006 à 20:02:27  profilanswer
 
n°1336032
mechkurt
Posté le 31-03-2006 à 07:56:23  profilanswer
 

Code :
  1. <?php
  2. header('Content-disposition: attachment; filename='.$_GET['n']);
  3. //header('Content-Type: application/force-download');
  4. header('Content-Type: application/octet-stream');
  5. header('Content-Transfer-Encoding: '.$_GET['ty'].'\n');
  6. header('Content-Length: '.$_GET['ta']);
  7. header('Pragma: no-cache');
  8. header('Cache-Control: must-revalidate, post-check=0, pre-check=0, public');
  9. header('Expires: 0');
  10. readfile('FTP/'.$_GET['n']);
  11. ?>


donne exactement le même resultat, mais merci quand même pour ta reponse...
 
vu qu'il me propose telecharger.php, c'est la: header('Content-disposition: attachment; filename='.$_GET['n']); qu'il y un PB non ?


---------------
D3
n°1336038
smaragdus
whores, drugs & J.S. Bach
Posté le 31-03-2006 à 08:41:45  profilanswer
 

je ne comprends pas trop ce que les caractères '\' et 'n' font à la fin de la ligne 5, c'est pas logique ?


Message édité par smaragdus le 31-03-2006 à 08:44:10
n°1336052
mechkurt
Posté le 31-03-2006 à 09:25:56  profilanswer
 

ben dans tout les exemples que j'ai trouvé, et en particulier celui la il s'y trouve...
il me semble bien que j'ai deja essayé sans mais je suis tellement desespere que dans le doute je retente de ce pas ;)
 
EDIT: nop toujours le même resultat :(
 
jai aussi essayé ca (mettre les valeurs d'egal entre " ):

Code :
  1. <?php
  2. header('Content-disposition: attachment; filename="'.$_GET['n'].'"');
  3. header('Content-Type: application/force-download');
  4. header('Content-Transfer-Encoding: '.$_GET['ty']);
  5. header('Content-Length: '.$_GET['ta']);
  6. header('Pragma: no-cache');
  7. header('Cache-Control: must-revalidate, post-check="0", pre-check="0", public');
  8. header('Expires: 0');
  9. readfile('FTP/'.$_GET['n']);
  10. ?>


sans plus de resultat...
sur ce site:
http://www.lephpfacile.com/tips/index.php?p=12
et sur pas mal d'exemple de:
http://fr.php.net/header
pas de \n
 
par contre la:
http://www.destrucsaweb.com/ressou [...] oto_45.php
il le mettent...
 
enfin tous ca ne m'avance pas beaucoups [:ruisseau de larmes]


Message édité par mechkurt le 31-03-2006 à 10:01:14

---------------
D3
n°1336165
anapajari
s/travail/glanding on hfr/gs;
Posté le 31-03-2006 à 11:15:16  profilanswer
 

ça a surement rien a voir mais pourquoi est ce que $_GET['ty'] contient "php" alors qu'il s'agit d'un fichier txt?

n°1336177
mechkurt
Posté le 31-03-2006 à 11:21:41  profilanswer
 

Code :
  1. <?php
  2. print_r($_GET);
  3. /*
  4. header('Content-disposition: attachment; filename="'.$_GET['n'].'"');
  5. header('Content-Type: application/force-download');
  6. header('Content-Transfer-Encoding: '.$_GET['ty']);
  7. header('Content-Length: '.$_GET['ta']);
  8. header('Pragma: no-cache');
  9. header('Cache-Control: must-revalidate, post-check="0", pre-check="0", public');
  10. header('Expires: 0');
  11. readfile('FTP/'.$_GET['n']);
  12. */
  13. ?>


ca donne ca:
Array ( [f] => isartis_test.txt [ty] => text/plain [ta] => 3175 )
moi je vois aucune erreur [:airforceone]


---------------
D3
n°1336192
anapajari
s/travail/glanding on hfr/gs;
Posté le 31-03-2006 à 11:33:15  profilanswer
 

ahh bin je sais pas c'est toi qui disais:

Citation :

maintenant ce qui se passe avec un un fichier text/plain essai.txt 3175 Octets:
-> avec FF vous avez choisi d'ouvrir telecharger.php type de fichier PHP Script, si je le telecharge, il est vide


 
edit: et tu es sur que ton

Code :
  1. readfile('FTP/'.$_GET['n']);

retourne quelque chose!


Message édité par anapajari le 31-03-2006 à 11:36:26
n°1336206
nargy
Posté le 31-03-2006 à 11:50:51  profilanswer
 

> donne exactement le même resultat, mais merci quand même pour ta reponse...
 
normal, tu a laissé ton Content-disposition: attachment, je ne l utilise jamais ça donne l impression à l internaute qu on le fait patienter.
 
Maintenant, si tu veux utiliser un attachement, c est pas du tout comme ça, Content-disposition: attachment devrait être dans la page d attente, sinon tel que tu l a écrit il ne trouve pas le fichier nommé $_GET['n'] puisqu il est dans le répertoire FTP. Donc fichier taille Zéro.

n°1336214
mechkurt
Posté le 31-03-2006 à 11:59:50  profilanswer
 

oui mais je disait aussi...

Citation :

sachant que $_GET['ty'] le type et $_GET['ta'] la taille  proviennent tout deux des infos de $_FILE (lors de l'upload) precedement stocker en BDD.
le fichier existe sur le serveur et si je fait un print_r($_GET) mon array as bien toute les infos requises


 ;)
hors les infos y sont, mais $_GET['n'] != de $_GET['f']  
 :jap:  
merci a toi de m'avoir aider a trouver mon bug, encore une fois, j'ai pas eu les yeux en face des trous...


---------------
D3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  header et force download [resolu]

 

Sujets relatifs
[C++/résolu] Pool[RESOLU] cherche script pour defilement de photos
[Résolu] Un compteur de mots dans WordProblème id dans création de tableau dynamique [résolu]
[resolu]Fonction sqrt non reconnue...Bouton abandonner en javascript [RESOLU]
[RESOLU] Comment dessiner une fenêtre?[Résolu] Vider le cache
Bloc Serveur comme nukeClan sur un site HTML [résolu][résolu][VBA]Afficher mon document Word
Plus de sujets relatifs à : header et force download [resolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR