我是java的新手,我从路径中获取图像数据并存储在字节数组中。 在Google Chrome上加载图片时,它会例外:
ClientAbortException:java.net.SocketException:软件导致连接中止:套接字写入错误
这是我的代码:
byte[] data = getImageData(path,imageName);
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", -1);
response.setHeader("Content-Disposition", "attachment,fileName=\"" + data);
response.setContentLength(data.length);
response.setContentType("application/octet-stream");
responseOutputStream = response.getOutputStream();
responseOutputStream.write(data, 0, data == null ? 0: data.length);
responseOutputStream.flush();
答案 0 :(得分:0)
我在代码中发现了一些语法错误。
filename
并赋值test.jpg
(您可以根据您的要求更改此值)。 /
和"
String filename = "test.jpg"; byte[] data = getImageData(path,imageName); response.setHeader("Cache-Control", "no-store"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", -1); response.setHeader("Content-Disposition", "attachment;fileName=" + filename); response.setContentLength(data.length); response.setContentType("application/octet-stream"); responseOutputStream = response.getOutputStream(); responseOutputStream.write(data, 0, data == null ? 0: data.length); responseOutputStream.flush();
答案 1 :(得分:0)
您似乎已将com.cj.trim.trimFilter
应用于您的输出。该过滤器不应该应用于输出不是HTML的任何东西。这是some documentation。
答案 2 :(得分:0)
我找到了答案
而不是response.setHeader("Content-Disposition", "attachment,fileName=\"" + data);
我使用了response.addHeader("Content-Disposition", "attachment;fileName=\"" + data);
它对我来说很好。 : - )