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

Signaler
Messages postés
10
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
19 avril 2010
-
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008
-
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

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
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>
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

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
-----------------
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
"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>
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

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
-----------------