Page 1 sur 1

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

Posté : 12 déc. 2005, 19:24
par arginine
Bonjour,
J'utilise le bout de code suivant pour "forcer le télécharmenet d'un fichier":

Fichier dowload.php
<?php
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=".$_GET['file']);
readfile($_GET['chemin'].$_GET['file']);
?>
Et voici la syntaxe des liens pour forcer le téléchargement:

Code : Tout sélectionner

<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

Posté : 12 déc. 2005, 20:17
par jobherzt
essaie avec la fonction url_encode.

Posté : 13 déc. 2005, 20:53
par Invité
merci pour ta réponse mais le problème reste le meme ...

Posté : 13 déc. 2005, 21:10
par jobherzt
normalement ca devrait marcher, ou alors il faut aussi que le nom du fichier soit code comme ca ? bizzare. e plus simple est quand meme d'eviter d'avoir des noms de fichiers avec des espaces, ca ne peut que te creer des soucis. pas moyen de les remplacer par des underscores ?