Bonjour,
J'ai une question sur la méthode pour envoyer un fichier .txt à télécharger à une personne qui navigue sur mon site internet.
voici la situation:
Une personne va sur ma page internet (une .jsp sous websphere avec un framework propriétaire proche de struts) et remplit des
champs
je crée un fichier .txt à partir des informations rentrées par la personne.
Dans ma jsp j'ai le code suivant:
<%
FileWriter fw1 = new FileWriter("infos.txt" );
....
fw1.close();
%>
ceci marche bien.
maintenant je voudrai fournir un lien sur ma page jsp pour que la personne puisse télécharger le fichier créé.
typiquement ce serait:
<a href="<%= request.getContextPath() + "/infos.txt"%>">Enregistrer les Infos</a>
Je voudrai que la personne clique sur le lien "Enregistrer les infos", et qu'une fenêtre s'ouvre en lui demandant ou il souhaite
enregistrer le fichier.
Or cela ne marche pas car le fichier est créé dans un répertoire qui n'est pas celui pointé par le lien fourni par href.
concrétement, le fichier créé l'est dans le repertoire: c:\websphere\infos.txt (là ou il y a l 'executable qui fait tourner
websphere)
et le "répertoire pointé" par ="<%= request.getContextPath()
est un repertoire quelconque dans lequel se situent mes sources (accessible sur mon disque dur par c:\workspace\mypage\ )
(pour info request.getContextPath renvoit sur http://mysite:8080/accueil)
donc je pourrai tricher en créant le fichier comme ceci: FileWriter fw1 = new FileWriter("c:\workspace\mypage\infos.txt" );
Mais bien sur ce n'est absolument pas optimal, et ça ne marchera jamais lorsque je publierai mon site.
Donc ma question est de savoir quelle est le meilleur moyen pour permettre à l'utilisateur de télécharger le fichier créé ?
(première étape : ou le créer ? seconde étape : comment y accéder à travers ma jsp ?)
j'ai fait quelques recherches et je tombe sur ces réponses possibles:
-utiliser des servlets (c'est une possibilité, qu en pensez vous ? de quoi pourrai je m inspirer ? -je ne connais pas les servlets,
j ai regardé l'exemple à la page
http://www.theserverside.com/discu [...] d_id=35984 et je ne sais pas trop comment intégrer ce code à mon
application qui n'utilise pas de servlets pour l'instant
-)
-il faut créer un buffer et le mettre à disposition de l'utilisateur (par quel moyen?) , car cela évite de surcharger le serveur
par une écriture de fichier sur celui-ci
-créer le fichier coté serveur (ce que je fais, mais sans bien maitriser le processus) et donner l accés au fichier
-idem mais coté client
En fait ma question est assez basique: comment créer un fichier et le mettre à disposition de l'utilisateur via son navigateur ?
Merci d'avance de vos réponses!
ps: le problème exposé à la page
http://forum.hardware.fr/hardwaref [...] 6691-1.htm
ne peut être appliqué à mon eivronnement (websphere + framework plus contraignant)