在SpringBoot应用程序中,我试图通过Response对象的outputBuffer返回图像,通过:
try {
response.setContentType("image/png");
InputStream in = new FileInputStream(pathToFile);
IOUtils.copy(in, response.getOutputStream());
}
catch (Exception e){
...
}
这很好,除非图像小于8kb ,在这种情况下它只返回任何内容。
有人能告诉我为什么小于8kb会导致Response实际返回零数据(而且 - 至关重要的是 - 如何解决这个问题)?
答案 0 :(得分:0)
我通过在标题中明确设置内容长度来解决它:
File actualFile = new File(pathToFile);
if (actualFile.exists()){
try {
response.setContentType("image/png");
response.setHeader("Content-Length", String.valueOf(actualFile.length()));
InputStream in = new FileInputStream(pathToFile);
IOUtils.copy(in, response.getOutputStream());
}
catch (Exception e){
...
}
}
我想如果它低于8kb,我不想知道内容的大小。