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

arginine Messages postés 10 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 19 avril 2010 - 12 déc. 2005 à 18:30
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008 - 14 déc. 2005 à 00:22
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:

[download.php?chemin=http://monsite.com/dossier/&file=monfichier.avi DOWNLOAD]


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

4 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 déc. 2005 à 22:54
Salut,
"(j'ai pas envie de faire un rename des fichiers avec espaces dans le nom)"

bah c'est bien dommage alors parce que je ne pense pas que tu arriveras à résoudre ton problème ;-)

tu peux par contre faire une fonction qui si un espace est présent le remplace par un underscore ;-)

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
13 déc. 2005 à 00:57
et t'a essayé

<?php
$fichier = str_repalce(" ","%20",$fichier);
?>

----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
-----------------
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
13 déc. 2005 à 18:15
"J'ai bien essayé de remplacer les espaces (avec ereg_replace) par "%20" mais cela ne marche pas non plus..."

j'en déduis qu'il a essayé :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
14 déc. 2005 à 00:22
Bah sinon ce que tu peu faire, dans le cas ou ca te fais chier de renommer les fichier à la main, ce que je comprendsi il y en as beaucoup, renomme les avec un script... essaie ca : http://www.phpcs.com/code.aspx?id=12999


----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
-----------------
0
Rejoignez-nous