Google Chrome上的图片未加载

时间:2014-10-12 18:28:42

标签: java google-chrome java-ee

我是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();

3 个答案:

答案 0 :(得分:0)

我在代码中发现了一些语法错误。

  • 首先,如果可能,请使用适当的名称来保存图像。在这里,我使用字符串filename并赋值test.jpg(您可以根据您的要求更改此值)。
  • 在setHeader行中,我发现了两个语法错误。还有一个额外的/"
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);

它对我来说很好。 : - )