Forcer le téléchargement

Forcer le téléchargement - PHP - Programmation

Marsh Posté le 15-01-2006 à 03:19:32    

Salut à tous !
 
J'ai un probleme lorsque je tente de forcer le téléchargement de fichier.
 
Voici mon script :
 
1) le fichier telecharge.php
 

Code :
  1. <?php
  2.  
  3.  
  4.  
  5. header("Content-type: application/force-download" );
  6. header("Content-Length: ".filesize($urlComplete));
  7. header("Content-Disposition: attachment; filename=$nomFichier" );
  8. readfile("$urlComplete" );
  9.  
  10. ?>


 
2) ma_page.php
 

Code :
  1. $nomFichier = "$file";
  2. // laisser vide si le fichier se trouve dans le même rep
  3. $urlComplete= "http://mon_url/dossier/".$nomFichier;
  4. $nomFichier = str_replace(" ","%20",$file);
  5. ?>
  6. <a href="telecharge.php?urlComplete=<? echo $urlComplete; ?>&nomFichier=<? echo $nomFichier; ?>"><center><font color='#800080'>Télécharger</font></center></a>


 
La boîte de dialogue s'ouvre bien, le téléchargement se fait bien mais tous les fichiers font environ 220Ko !!
Il est donc inutiles de vous dire que les mp3 sont illisibles !
 
D'où vient ce problème s'il vous plaît ?
 
Merci d'avance


Message édité par joce le 15-01-2006 à 03:46:34
Reply

Marsh Posté le 15-01-2006 à 03:19:32   

Reply

Marsh Posté le 15-01-2006 à 11:16:20    

Si c'est la taille des fichiers qui changent ça n'a peut être rien à voir avec ton code :heink:
T'as testé avec un autre type de fichier ? :sarcastic:

Reply

Marsh Posté le 15-01-2006 à 12:42:18    

Salut !
 
Oui, j'ai testé avec plusieurs fichiers.
 
Pour un mp3 de 4mo, il me semble quand même grave qu'il ne fasse plus que 220ko au final !

Reply

Marsh Posté le 15-01-2006 à 14:31:08    

1) telecharge.php
 

Code :
  1. <?php
  2. if(isset($_GET['nomFichier'])) {
  3.    $nomFichier = $_GET['nomFichier'];
  4.    $urlComplete= "http://mon_url/dossier/".$nomFichier;
  5.    if(!file_exists($urlComplete)) {
  6.        die('Le fichier n\'existe pas');
  7. } else {
  8.    die('Vous devez spécifier un fichier à télécharger');
  9. }
  10.  
  11. header('Content-type: application/force-download');
  12. header('Content-disposition: attachment; filename="' . $nomFichier . '";');
  13. header('Content-Transfer-Encoding: binary');
  14. header('Pragma: no-cache');
  15. header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
  16. header('Expires: 0');
  17. header('Content-Length: ' . filesize($urlComplete));
  18. //Lecture du fichier à envoyer :
  19. readfile($urlComplete);
  20. ?>


 
2) ma_page.php
 

Code :
  1. <?php
  2. $nomFichier = "$file"; // <<== pas compris l'intérêt de cette ligne par contre ...
  3. echo '<a href="telecharge.php?nomFichier=' . $nomFichier . '">Télécharger</a>
  4. ?>


 
Et utilise les CSS :o
 
:D
 
 
Edit : je viens de l'écrire direct sur le forum alors à vérifier si je n'ai pas fais d'erreurs.


Message édité par Dj YeLL le 15-01-2006 à 14:32:13

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 15-01-2006 à 14:58:51    

Salut DjYell ! Merci pour ta réponse !
 
J'ai reussi à trouver entre temps et n'ai pas eu le temps de venir poster pour vous tenir au courant.  
Désolé.
 
En fait, comme la plupart du temps d'ailleurs, l'erreur est toute simple !
 
Il suffisait de remplacer :
 

Code :
  1. <a href="telecharge.php?urlComplete=<? echo $urlComplete; ?>&nomFichier=<? echo $nomFichier; ?>"><center><font color='#800080'>Télécharger</font></center></a>


 
par  
 

Code :
  1. <a href="telecharge.php?urlComplete=<? echo $urlComplete; ?>&nomFichier=<? echo $file; ?>"><center><font color='#800080'>Télécharger</font></center></a>


 
Merci beaucoup pour ton aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed