Pb avec readfile()

Pb avec readfile() - PHP - Programmation

Marsh Posté le 14-01-2006 à 03:47:43    

salut,  
 
J'ai un pb avec ma fonction de téléchargement
 
header("Content-type: application/force-download" );
header('Content-Disposition: attachment; filename="'.$nom_file.'"');
header("Content-Length: ".filesize($nom_file)."" );
header("Expires: 0" );
readfile($nom_file);
 
Le problème c'est qu'il est possible que les $nom_file soit égale à une url avec espace (ex : http://monsite.com/sons/1- a mon chat.mp3).  
 
Quand je test, il télécharge un fichier nommé "http---monsite.com-sons-1- a mon chat.mp3" qui pèse quelques Ko au lieu de 3 Mo.  
 
 
Comment puis-je faire pour qu'il puisse télécharger ce type d'url ?  
Y ' a-t-il un encodage à réaliser (type ut8 ou autre) ?  
 
MERCI  :hello:

Reply

Marsh Posté le 14-01-2006 à 03:47:43   

Reply

Marsh Posté le 14-01-2006 à 13:49:13    

transformation d'une chaine pour la rendre valide avec le format des adresses web: urlencode()

Reply

Marsh Posté le 16-01-2006 à 22:03:30    

Attention, ça :
 

Code :
  1. header('Content-Disposition: attachment; filename="'.$nom_file.'"');


 
c'est uniquement le nom que tu veux donner au fichier que la personne telecharge.
 
Tu devrais utiliser le nom du fichier dans un paramètre (par exemple $_GET['file']
 
Et utiliser ce nom pour ton filename=
 
Ensuite fais un readfile('/ton_chemin/vers_le_fichier/' . $_GET['file']);
 
Et d'ailleurs, avant ça, tout en haut, fait un file_exists, pour être sûr que le fichier existe :)
 
++


Message édité par Dj YeLL le 16-01-2006 à 22:03:39

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

Sujets relatifs:

Leave a Replay

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