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.
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
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?
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
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.