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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Forcer le téléchargement et espace dans le nom du fichier

par jobherzt » 13 déc. 2005, 21:10

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 ?

par Invité » 13 déc. 2005, 20:53

merci pour ta réponse mais le problème reste le meme ...

par jobherzt » 12 déc. 2005, 20:17

essaie avec la fonction url_encode.

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

par arginine » 12 déc. 2005, 19:24

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