COMMENT FORCER LE TÉLÉCHARGEMENT D'UN FICHIER

newhack25 Messages postés 19 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 12 janvier 2005 - 6 nov. 2004 à 08:52
ysingnu Messages postés 2 Date d'inscription samedi 16 avril 2011 Statut Membre Dernière intervention 8 juin 2012 - 8 juin 2012 à 16:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27328-comment-forcer-le-telechargement-d-un-fichier

ysingnu Messages postés 2 Date d'inscription samedi 16 avril 2011 Statut Membre Dernière intervention 8 juin 2012
8 juin 2012 à 16:05
Merci Bq
mrdeejai Messages postés 3 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 8 janvier 2008
26 juil. 2010 à 16:52
hello

j'aimerais bien utilisé ce script sur mon site qui est full flash
j'ai tenté ce script sur mon bouton qui lance le telechargement

on(release)
{
getURL ("downloadFile.jsp?file="+ _global.urlLightbox);
}

ou _global.urlLightbox est l'url complete du fichier...j'ai supprimé les infos de chemin dans le script .jps pusique ma variable file contient deja toutes les infos...mais lors du clic ca me propose de charger le fichier jsp et non l'image contenue dans l'url...
est ce que qqun a une idée ??

merci d'avance
puma67000 Messages postés 163 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 8 mai 2011
7 avril 2009 à 15:25
ça marche pas du tous peux importe la modification apporter je télécharge tous le temps le fichier downloadFile.jsp.
c'est pas normal.
et une fois adapter à mon site une page d'ereur s'ouvre quand on le test.
quelqu'un aurai quelque chose qui fonctionnerai?
mazedu62 Messages postés 1 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 14 mars 2008
14 mars 2008 à 15:38
<%@ page import="java.util.*,java.io.*"%><%

File f = new File ("http://s3.archive-host.com/membres/playlist/90636913221784611/Musiques_libres/Acoustique/" + request.getParameter("file") );

response.setContentType ("unknown/unknown");

response.setHeader ("Content-Disposition", "attachment; filename="Deschansons.mp3" + request.getParameter("file") + """);

InputStream in = new FileInputStream(f);
ServletOutputStream outs = response.getOutputStream();
try {
int bit = in.read();
while ((bit) >= 0) {
outs.write(bit);
bit = in.read();
}
} catch (Exception e) {
e.printStackTrace(System.out);
}
outs.flush();
outs.close();
in.close();
%>
voici le code que j'ai mis d'apres les instructions, mais il quand je lance le lien il me montre cette page de codes, pourquoi ?

voici le html :
document
hyphenx Messages postés 1 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 15:48
Simple, efficace !
BraveLord Messages postés 2 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 18 janvier 2008
18 janv. 2008 à 10:49
Trouvé !
Il ne faut pas utiliser de "File".
Exemple pour un fichier Excel (xls) :

<%@ page import="java.io.*"%>
<%
response.setContentType ("unknown/unknown");

response.setHeader ("Content-Disposition", "attachment; filename="monFichier.xls"");

InputStream in = config.getServletContext().getResourceAsStream("/monPremierRepertoire/monFichier.xls");

ServletOutputStream outs = response.getOutputStream();
try {
int bit = in.read();
while ((bit) >= 0) {
outs.write(bit);
bit = in.read();
}
} catch (Exception e) {
e.printStackTrace(System.out);
}
outs.flush();
outs.close();
in.close();
%>

J'espère que ça aidera.
BraveLord Messages postés 2 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 18 janvier 2008
17 janv. 2008 à 12:36
Bonjour,

En testant le code sur un serveur, et en affichant le path ('getPath()') de 'f' (de type File), le path "http://monSite.com/monFichier.xls" devient "http:\monSite.com\monFichier.xls".
En l'occurence, le code recherche un fichier sur le disque dur, plutôt qu'un fichier sur le web.
Et bien entendu, je ne connais pas le path du fichier sur le disque dur du serveur (juste le lien Internet qui mène au fichier).

Est-il possible de remédier à celà ?

D'avance, merci pour votre temps et vos réponses.

Raph'
NomUtil Messages postés 1 Date d'inscription vendredi 12 octobre 2007 Statut Membre Dernière intervention 12 octobre 2007
12 oct. 2007 à 12:28
C'est exactement ce que je cherche à faire...

Malheureusement internet explorer me répond :
Etat HTTP 404 - /downloadFile.jsp
type Rapport d'état
message /downloadFile.jsp
description La ressource demandée (/downloadFile.jsp) n'est pas disponible.

Est-ce parce qu'un fichier jsp ((où j'ai : [downloadFile.jsp?file=REQUEST_FORM.dot Request form])) ne peut pas appeler un autre fichier downloadFile.jsp situé dans le même répertoire, lequel renvoie à un serveur "http://machintruc.fr/repertoire/espace_client/" ?
PS j'utilise Tomcat
paohlott Messages postés 6 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 24 mai 2005
26 juin 2007 à 17:36
Bonjour FENTS,

Cette solution est faite pour les serveurs java/jsp. Ton problème arrive pour la simple raison que ton hébergeur n'est pas fait pour héberger du java et des jsp. Si ton hébergeur reconnait le php, alors utilise une solution équivalente en php (voir lien plus haut).
fents Messages postés 1 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 26 juin 2007
26 juin 2007 à 00:34
Bonjour,

En ayant testé le code, j'ai le résultat que ... c'est le fichier "downloadFile.jsp" qu'il télécharge. Il ne tient pas du tout en compte du nom de fichier que j'ai mis en paramètre.
metourne Messages postés 1 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 11 mai 2007
11 mai 2007 à 14:36
Bonjour a tous,
je me permet de remonter ce topic pour remercier paohlott car ce programme m'aide vraiment (vraiment vraiment) beaucoup.
Malheureusement mon erreur est la meme que grand spirou et beniiiito, sauf que le serveur sur lequel je suis ne prend ni le JSP ni le PHP.

J'aimerai savoir si tu savais comment mettre des modules pour permettre le fonctionnement de ces programmes, ou si il y a une autre solution pour le faire fonctionner?
beniiito Messages postés 2 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 17 mars 2007
17 mars 2007 à 15:22
je n'ai pas pu essayer cette semaine mais promis je donnerai des nouvelles
japz Messages postés 1 Date d'inscription vendredi 23 juin 2006 Statut Membre Dernière intervention 15 mars 2007
15 mars 2007 à 12:09
Merci PAOHLOTT pour ce source qui fonctionne tres bien !!
Ca resouds un probleme bien ennnuyeux pour moi !
Claire
paohlott Messages postés 6 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 24 mai 2005
13 mars 2007 à 18:56
Bonjour Beniiito,
C'est normal que ça ne marche pas chez vous, car FREE ne reconnait que le langage PHP, il ne supporte pas le java ni les jsp. Il existe une astuce équivalente en PHP : en recherchant "forcer téléchargement php" dans Google, je tombe par exemple sur ce lien : http://www.destrucsaweb.com/ressources/phpmyannu/goto_45.php
Cordialement.
beniiito Messages postés 2 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 17 mars 2007
13 mars 2007 à 17:19
comme dit Grand Spirou

Helas, milles fois helas... ! Quand je clique sur le lien, dans le navigateur, j'ai le fichier downloadFile.jsp qui s'affiche en format texte (sous Firefox). IE me propose de télécharger le fichier jsp.

J'ai pourtant suivi tes instructions à la lettre ! moi je suis hébergé chez FREE, vous pensez que ça vient de chez eux?
cs_bigsnoop Messages postés 1 Date d'inscription jeudi 6 novembre 2003 Statut Membre Dernière intervention 9 février 2007
9 févr. 2007 à 09:48
il marche bien ta JSP pour forcer le telechargement d'un fichier.
Mais le seul souci que j'ai avec, c'est que lorsque je télécharge mon fichier text, les deux premiere ligne du fichier sont vides ...
Alors que le meme fichier téléchargé sur le serveur ne commence pas par deux ligne vide !!!

Est ce que ca vous dit quelques choses cette anomalie?

Merci,
formyjuju Messages postés 1 Date d'inscription dimanche 20 novembre 2005 Statut Membre Dernière intervention 13 octobre 2006
13 oct. 2006 à 11:53
Nikel ce code :)
lulupupuce Messages postés 1 Date d'inscription samedi 17 juin 2006 Statut Membre Dernière intervention 17 juin 2006
17 juin 2006 à 01:13
J'ai aussi un problème de telechargement!!
Mon ordinateur ne veut telecharger ausun fichier, le message suivant s'affiche:
le site n'est pas disponible ou n'a pas pu être trouver
Reessayer ultérieurrement!!
J'auraos vraiment besoin de vos ressource car cela fait un moment que je n'arrive pas a resoudre le problème!!
Meri de m'aider je vous en serait très reconaissante
tdaouas Messages postés 27 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 23 octobre 2017
27 janv. 2006 à 23:04
J'ai un problème, j'ai download accelerator pour télécharger et il ne retrouve pas les informations concernant le fichier à télécharger. Je crois bien, d'après les commentaires déjà existants, que mon problème provient du fait que je suis hébergé gratuitement. Est-ce que c'est possible de me dire comment remédier à ça?
Merci beaucoup
Lamesh Messages postés 1 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 mai 2006
15 juil. 2005 à 00:50
Bonjour, J'ai moi aussi télécharger ton code.mais malheureusement je n'ai pas su le faire marcher :o(

tout d'abord Tomcat m'a indiqué qu'il ne voulait pas du ">" de la boucle while, car il le prenait pour une fin incorrecte du <% qui ouvre le code.

J'ai du changé la boucle par un "for (int bit = in.read(); bit=0; bit--)". (du bricolage quoi :oS)

ensuite Tomcat a changé d'erreur :org.apache.jasper.JasperException: Impossible de charger la classe pour la JSP. Et là je sèche je ne sait pas quoi faire.

J'ai bien indiqué le chemin des fichiers avec le chemin réel. Je n'ai pas fait de filtrage par extension de fichiers.

As-tu déjà eu cette erreur ?
Que puis-je faire ?

Merci,
Loïc
paohlott Messages postés 6 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 24 mai 2005
22 nov. 2004 à 09:30
Spirou,

d'après ce que tu me dis, j'ai l'impression que ton serveur ne reconnait pas les fichiers jsp. Tu es hébergé chez qui? Si tu as un hébergeur gratuit alors il ne reconnait probablement que le php, et dans ce cas cette solution ne marchera pas. Mais il existe une solution équivalente pour le php, tu dois pouvoir la trouver sur le web.

Quant à ta dernière question, je n'ai pas bien compris ce que tu demandes.

Pierre-Adrien
GrandSpirou Messages postés 2 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 20 novembre 2004
20 nov. 2004 à 00:58
Merci Paohlott !

Helas, milles fois helas... ça ne règle pas mon pb ! Quand je clique sur le lien, dans le navigateur, j'ai le fichier downloadFile.jsp qui s'affiche en format texte (sous Firefox). IE me propose de télécharger le fichier jsp.

J'ai pourtant suivi tes instructions à la lettre !

Le fichier se trouve ici : c:/bast/include/

Je remplace donc dans le fichier jsp :
File f = new File ("c:/bast/include/" + request.getParameter("file") );

Idem pour la page html :
[downloadFile.jsp?file=xxx.mp3 document ]

Alors je ne comprends pas !

Quand bien même ça marcherait, quel chemin doit-on mettre sur le serveur web ? "../include/" ?

Merci
paohlott Messages postés 6 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 24 mai 2005
19 nov. 2004 à 17:39
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
GrandSpirou Messages postés 2 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 20 novembre 2004
19 nov. 2004 à 00:34
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 ?
xspid Messages postés 2 Date d'inscription mardi 28 septembre 2004 Statut Membre Dernière intervention 12 novembre 2004
12 nov. 2004 à 15:23
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!
xspid Messages postés 2 Date d'inscription mardi 28 septembre 2004 Statut Membre Dernière intervention 12 novembre 2004
12 nov. 2004 à 10:35
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."
???
newhack25 Messages postés 19 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 12 janvier 2005
6 nov. 2004 à 08:52
Je vais télécharger ton script il allair pas mal !
Rejoignez-nous