Forcer téléchargement

cs_tweeder Messages postés 172 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 19 juin 2009 - 3 juin 2005 à 16:21
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 4 juin 2005 à 16:18
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 juin 2005 à 16:28
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.
0
cs_tweeder Messages postés 172 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 19 juin 2009
3 juin 2005 à 17:14
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 juin 2005 à 11:09
C'etait mieux d'ecrire un html correct, mais bon...
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 juin 2005 à 16:18
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>
0
Rejoignez-nous