Bonjour à toutes et à tous,
Voici mon problème : dans une application Web Java (j'utilise apache tomcat 6, NetBeans et Derby), j'essaie d'uploader un fichier excel lorsque l'utilisateur clique sur le bouton d'un formulaire HTML.
Seulement, lorsque le navigateur de l'utilisateur lui demande s'il veut ouvrir ou télécharger le fichier, voici ce qui s'affiche :
Au lieu d'afficher le nom de mon fichier, c'est le nom de la page qui renvoie le fichier excel (test.export) qui est affichée (son URL est http://localhost:8084/monAppli/servlet/test.export).
Pourtant, dans mon code Java, je remplis bien les headers Content-Type et Content-Disposition, mais cela ne semble avoir aucun effet.
Voici le morceau de code qui est censé faire cela :
J'ai essayé avec et sans les out.flush() et out.close(), en utilisant la méthode setHeader au lieu de addHeader, en utilisant setHeader ou addHeader au lieu du setContentType,...mais rien n'y fait, je n'arrive toujours pas à avoir le nom de mon fichier proposé en téléchargement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 String filename= "export.xls"; File excelFile= new File(filename); // On récupère le flot pour écrire dans la réponse HTTP OutputStream out= response.getOutputStream(); BufferedInputStream xlstream = new BufferedInputStream(new FileInputStream(excelFile)); int len=0; while((len=xlstream.read(buffer)) != -1){ out.write(buffer, 0, len); } // On "flushe" et on ferme le flot out.flush(); out.close(); // On rajoute les headers dans l'objet response (de type HTTPServletResponse) response.setContentType("application/vnd.ms-excel"); response.addHeader("Content-Disposition", "attachment;filename=" + filename);
Donc, si vous voyez la solution à mon problème, elle est la bienvenue !!! Là, je suis à court de solutions
Merci d'avance !!!
Partager