[JAVA-SERVLET] changer dynamique le nom d'un fichier à télécharger

changer dynamique le nom d'un fichier à télécharger [JAVA-SERVLET] - Programmation

Marsh Posté le 04-12-2001 à 18:45:39    

bon le sujet est pas très explicicte : je manque de place. ;)
 
je fais une appli intranet dans laquelle il faut pouvoir télécharger des données sous la forme d'un fichier CSV (fichier texte avec des virgule comme séparateur).
 
Ce fichier est généré dynamiquement par une servlet. (=> changement de type MIME)
 
Quand l'utilisateur clique sur le lien (qui pointe vers ma servlet), le fichier que IE lui propose d'ouvrir ou de sauvegarder porte le nom de ma servlet.
 
Ce que je voudrais c'est que ca lui propose de sauvegarder un fichier dont le nom serait "fichier.csv". Et même plus fort, avec la date dans le nom du fichier, style "fichier_2001-12-25.csv".
 
Je sais que c'est possible (des sites bancaires le font) mais je ne sais pas du tout comment faire ...
 
help please !! je dois mettre mon appli en prod demain !!! :cry:

 

[edtdd]--Message édité par benou--[/edtdd]

Reply

Marsh Posté le 04-12-2001 à 18:45:39   

Reply

Marsh Posté le 04-12-2001 à 18:55:18    

remarque : j'ai trouvé une méthode permettant que le nom soit statique.
 
sous tomkat, je fais un lien symbolique (dans le fichier web.xml) en donnant le nom "fichier.csv" et pointant ma servlet.
 
mais avec cette métode, pas moyen de faire des noms dynamiques :(

Reply

Marsh Posté le 04-12-2001 à 21:29:31    

Avec une servlet tu peux rediriger une réponse autre que http via le mime type. Dès lors tu crées ton fichier, tu lui donne un certains noms puis tu le renvoies en output simplement en mettant le mime type correspondant (faire gaffe que IE ne l'ouvre pas en contenu plutot que download (genre application/...)
 
C'est clair?


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 05-12-2001 à 09:47:15    

Salut, tu peux t'en servir en faisant dans le "service" de ta servlet
 

Code :
  1. result.setContentType("text/comma-separated-values" );
  2. result.setHeader("Content-disposition", "attachment; filename=le_nom_que_tu_veux.csv" );


 
A++

 

[edtdd]--Message édité par WiseTechi--[/edtdd]

Reply

Marsh Posté le 05-12-2001 à 10:09:45    

darklord : j'avais déjà changé le type mime. ce qui m'intéressait c'était le nom du fichier.
 
WiseTechi : GENIAL ! ca marche impec. c'était exactement ce que je vouslais. Je me doutais bien que ca devait être un header, mais pas moyen de savoir lequel. merci :)
 
remarque : j'ai du virer le "attachment;" sinon ca me chargeait une page vide. en laissant juste le filename ca tourne au poil !
merci bcp !

Reply

Marsh Posté le 05-12-2001 à 10:32:03    

benou a écrit a écrit :

darklord : j'avais déjà changé le type mime. ce qui m'intéressait c'était le nom du fichier.




 
Bin je le donne le nom de fichier :D


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 05-12-2001 à 10:43:10    

darklord22 a écrit a écrit :

 
 
Bin je le donne le nom de fichier :D  




 
ouais mais bon, "tu lui donne un certains nom", ca me dit pas trop comment faire ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed