Forcer téléchargement

Signaler
Messages postés
172
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2009
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour,



J'aimerais forcer le téléchargement de fichier en cliquant sur un lien. Voici le script que j'utilise



$file = $HTTP_GET_VARS['chemin'].$HTTP_GET_VARS['filename'];

header('Content-Description: File Transfer');

header('Content-Type: application/force-download');

header('Content-Length: ' . filesize($file));

header('Content-Disposition: attachment; filename=' . basename($file));

readfile($file);


Le problème, c'est que j'essaie de télécharger des documents avec des
espaces dans le nom. Exemple : "doc 1995.doc" , bien mon script va
ouvrir une fenêtre de téléchargement pour "doc" seulement. Est-ce que
qqun connait une façon de forcer le téléchargement d'un fichier avec
des espaces dans son nom?

Serais-je mieux de tout simplement vérifier pour qu'un usager puisse seulement entrer des noms de fichier sans espace ?



Merci de votre temps !


Jonathan

4 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,



si tu veux mon avis, le probleme vient de la recuperation de tes variables

$file = $HTTP_GET_VARS['chemin'].$HTTP_GET_VARS['filename'];



A mon avis, encore, tu les as passees comme des variables, dans un
quelconque attribut html, avec simples quotes voire sans quotes du tout
(pour delimiter la valeur de l'attribut)...



header('Content-Type: application/force-download');

=> T'es sur de ton content-type la lol...??



$HTTP_GET_VARS : on utilise plus ca normalement. $_GET plutot.
Messages postés
172
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2009

Merci pour ton aide !

Voici un lien que j'ai trouvé et qui m'a grandement aidé : http://elouai.com/force-download.php

J'ai utilisé un str_replace pour remplacer tous mes noms de fichiers et
leur affecter un '_' pour remplacer les espaces blancs. À l'avenir,
tous les fichiers upoadé vont subir le même sort pour éviter des
erreurs avec des espaces.


Jonathan
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
C'etait mieux d'ecrire un html correct, mais bon...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



au passage quand tu parses les noms de tes fichiers enlèves les caractères spéciaux.



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>