Forcer le téléchargement et espaces dans le nom du fichier

Forcer le téléchargement et espaces dans le nom du fichier - PHP - Programmation

Marsh Posté le 12-12-2005 à 18:36:16    

Bonjour,
J'utilise le bout de code suivant pour "forcer le télécharmenet d'un fichier":
 
Fichier dowload.php

Code :
  1. <?php
  2. header("Content-type: application/force-download" );
  3. header("Content-Disposition: attachment; filename=".$_GET['file']);
  4. readfile($_GET['chemin'].$_GET['file']);
  5. ?>


Et voici la syntaxe des liens pour forcer le téléchargement:
 

Code :
  1. <a href="download.php?chemin=http://monsite.com/dossier/&file=monfichier.avi">DOWNLOAD</a>


 
ps: le fichier monfichier.avi est situé dans http://monsite.com/dossier
 
Tout cela marche très très bien sauf si le nom du fichier a télécharger comporte des espaces (ex: monfichier toto.avi). Si je click sur le lien (pour télécharger un fichier avec un espace), j'ai bien une fenêtre de téléchargement qui s'ouvre mais le poids du fichier téléchargé c'est genre 202 octets ... et si je tente d'ouvrir le fichier (avec expace) téléchargé : erreur (si c'est une video: wmp ---> impossible d'ouvrir le fichier).
 
J'ai bien essayé de remplacer les espaces (avec ereg_replace) par "%20" mais cela ne marche pas non plus...
 
si quelqu'un a une idée pour résoudre mon probleme (j'ai pas envie de faire un rename des fichiers avec espaces dans le nom).
 
Par avance merci,
 
Francis
 

Reply

Marsh Posté le 12-12-2005 à 18:36:16   

Reply

Marsh Posté le 12-12-2005 à 18:51:21    

Citation :

header("Content-Disposition: attachment; filename=\"".$_GET['file']."\"");


 
Ou bien

Citation :

header('Content-Disposition: attachment; filename="'.$_GET['filename'].'"');


Message édité par masklinn le 12-12-2005 à 18:52:37

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 13-12-2005 à 19:51:08    

Merci pour ta réponse mais ni l'une ni l'autre des solutions ne marche

Reply

Marsh Posté le 13-12-2005 à 21:01:23    

essaye ça alors pê
 
header('Content-Disposition: attachment;filename=' . htmlencode($_GET['filename']) . "'" );


Message édité par Ricco le 13-12-2005 à 21:02:51

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Sujets relatifs:

Leave a Replay

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