Bonjour
J'utilise le code suivant dans la méthode doPost de ma Servlet pour télécharger un fichier présent sur le serveur depuis une page.
Avec Firefox, tout se passe bien, le navigateur propose une fenêtre où l'on peut soit ouvrir le fichier avec un logiciel correspondant à l'extension du nom du fichier, soit enregistrer le fichier.
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 response.setContentType("application/download"); response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\""); final File file = new File(cheminVersMonFichier); response.setContentLength((int) file.length()); final FileInputStream fis = new FileInputStream(file); final OutputStream os = response.getOutputStream(); byte[] fileContent = new byte[4096]; int r = 0; while (r >= 0) { r = fis.read(fileContent); os.write(fileContent); } os.flush(); os.close();
Mais avec Internet Explorer 6, le nom du fichier télécharger s'appelle toujours "download". Du coup les utilisateurs ne peuvent pas l'ouvrir (pas d'extension) et si ils l'enregistrent, ils ont un pauvre fichier nommé simplement "download". Ils doivent ensuite ajouter l'extension à la main (par exemple .txt ou .zip) pour l'ouvrir. Cela n'est pas acceptable.
Comment faire pour avoir le bon comportement sur Internet Explorer ? Je pensais que le Header avec attachment;filename=... servait à spécifier le nom du fichier téléchargé...
Merci d'avance pour votre aide.
Partager