Bonjour,
J'ai une servlet qui s'occupe du téléchargement des fichiers et qui marche très bien à l'exception des fichiers offices 2007 et +.
Dès que je veux télécharger un fichier docx, xlsx etc ... le fichier est corrompu. En faisant une analyse des fichiers sources et destination il s'avère que le fichier téléchargé est incomplet.
Voici le code qui s'occupe du téléchargement :
Je ne comprend pas pourquoi ce code fonctionne très bien pour tous les autres fichiers et pas pour les docx, xlsx etc ... J'ai fait beaucoup de recherches sur internet qui n'ont rien données. J'ai aussi essayer d'ajouter la taille du fichier au header mais ça n'a rien donné non plus.
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 File f = null; ServletOutputStream out = reponse.getOutputStream(); reponse.setContentType("multipart/form-data"); String paramIdf = request.getParameter("Idf"); try { BdSt0 = connexion.createStatement(); resultat = BdSt0.executeQuery(requete); resultat.next(); lien = "test.xlsx" // normalement récupéré dans la base de données f = new File( "d:\\Tomcat\\webapps\\doc\\" + lien); reponse.setHeader("Content-Disposition", "attachment;filename=\"" + f.getName() + "\";"); byte[] tampon = new byte[4 * 1024]; FileInputStream in = new FileInputStream(f); while (in.read(tampon) >= 0) { out.write(tampon); } in.close(); connexion.close(); } catch (Exception sqlex) { try { connexion.close(); } catch (Exception e) { System.out.println(e); } }
Merci d'avance pour votre aide.
Partager