Bonjour,
Avec le code qui suit (provenant d'une servlet, méthode doPost) je souhaite récupérer un fichier excel depuis mon serveur :
Ca marche sans problème sous firefox, mais çà plante sous IE.
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
36
37
38
39 //response est de type HttpServletResponse //xlsFile est de type File ServletOutputStream out = null; BufferedInputStream bufInputStream = null; String szDocName = xlsFile.getName(); try { response.resetBuffer(); response.setContentType("application/force-download"); response.setHeader("Content-Disposition", "attachment;filename=\"" + szDocName + "\""); response.setContentLength((int) xlsFile.length()); out = response.getOutputStream(); bufInputStream = new BufferedInputStream(new FileInputStream(xlsFile)); int bufferSize = 64 * 1024; byte[] bufferFile = new byte[bufferSize]; for (int i = 0; ; i++) { int len = bufInputStream.read(bufferFile); if(len < 0) break; out.write(bufferFile, 0, len); } out.flush(); } catch(Exception e) { e.printStackTrace(); } finally { try { bufInputStream.close(); } catch (Exception e) { } }
Le message affiché est :
Coté serveur Jonas j'ai une exception qui est levée du type :Internet explorer n'a pas pu ouvrir ce site Internet...
Voilà vous savez tout.ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:348)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:88)
J'ai essayé d'ajouter dans le header des no-cache, expires... mais rien n'y fait !
Le site est en http (en attendant de passer en https) donc le problème de cache ne devrait pas se faire sentir.
Si vous avez des idées je suis preneur
Merci d'avance
Partager