Comment forcer le téléchargement d'un fichier

Soyez le premier à donner votre avis sur cette source.

Vue 45 713 fois - Téléchargée 5 882 fois

Description

Lorsqu'on met un lien vers un fichier dans une page web, il arrive que celui-ci soit directement ouvert au lieu d'être téléchargé. Dans ce cas pour télécharger le document, l'utilisateur doit cliquer sur le bouton droit de la souris et choisir "enregistrer la cible sous...", ce qui n'est pas très pratique.

Pour que le navigateur n'ouvre pas le fichier et qu'il le propose directement en téléchargement, il faut utiliser un langage dynamique, ici du jsp. Une solution équivalente existe aussi en php à ma connaissance.

J'ai mis 2 fichiers dans le zip :
- testDownloadFile.html qui montre comment écrire un lien ou un bouton permettant le téléchargement d'un document

- downLoadFile.jsp, qui est appelé lorsqu'on clique sur le lien ou le bouton de testDownLoad.html, et qui s'occupe de forcer le téléchargement

Pour faire fonctionner ces fichiers, il faut remplacer dans le fichier html le nom du document à télécharger par un des votres, et il faut mettre dans le fichier jsp le chemin du répertoire qui contient ce document.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

newhack25
Messages postés
19
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
12 janvier 2005
-
Je vais télécharger ton script il allair pas mal !
xspid
Messages postés
2
Date d'inscription
mardi 28 septembre 2004
Statut
Membre
Dernière intervention
12 novembre 2004
-
ce script repondait précisément à ce que je cherchais. Malheureusement, il semble ne pas bien marcher chez moi.
Pourtant, le nom du document à télécharger a été changé dans le fichier html et le chemin du répertoire dans le fichier jsp. le chemin du repertoire est du type "../repertoire/"
Lorsque je veux télécharger le fichier, il me met une erreur du genre "... Internet Explorer n'a pa pu ouvrir ce site Internet. Le site requis n'est pas disponible ou n'a pas pu être trouver. réessayer ultérieurement."
???
xspid
Messages postés
2
Date d'inscription
mardi 28 septembre 2004
Statut
Membre
Dernière intervention
12 novembre 2004
-
Pb résolu. C'était une erreur de ma part. Y avait un espace à la fin du nom du fichier à télécharger. et donc comme je l'avais pas mis, evidemment il trouvait pas le fichier.

Ton script est TOP et bien commenté!
thanks!
GrandSpirou
Messages postés
2
Date d'inscription
jeudi 18 novembre 2004
Statut
Membre
Dernière intervention
20 novembre 2004
-
Je suis totalement novice dans le domaine, et franchement je suis perdu.
Admettons que sur une page écrite en hmtl, je mette un lien vers un fichier mp3 (xxx.mp3). Ce fichier est dans le répertoire ../audio du site. Mon fichier html est sur la racine.

Qu'est ce que je rentre dans le fichier jsp et dans le fichier html.

Merci de votre aide. Si quelqu'un a une bonne ref de bouquin pour comprendre ce genre de script, je suis preneur...

Ah oui, au fait, ça marche sur tous les browser ? Firefox, Mozilla, Opera, etc ?
paohlott
Messages postés
6
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
24 mai 2005
-
Salut GrandSpirou,

J'ai testé ce script sur Internet Explorer et Mozilla, et ça fonctionne sur les deux.

Concernant ton problème :
-dans le fichier html, il faut changer la séquence :
[downloadFile.jsp?file=document.pdf document]
par :
[downloadFile.jsp?file=xxx.mp3 document]
pour faire fonctionner l'hyperlien.

- dans le fichier jsp, il faut changer la ligne :
new File ("chemin du fichier" + request.getParameter("file") );
en remplaçant "chemin du fichier" par le chemin réél sur le disque dur du répertoire "audio". Je ne pense pas que ça fonctionne si tu mets juste "/audio", il faut que tu arrives à savoir quel est le chemin complet sur le disque de ce répertoire. ça sera peut-être du genre "c:/**chemin du site web**/audio/".


Sinon saches que tu n'as pas besoin de bien comprendre le fonctionnement de la page jsp pour l'utiliser. Je n'ai moi-même pas tout compris, je me suis inspiré de solutions existantes.

PA

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.