我使用spring mvc并想创建一个必须返回二进制文件的方法。我找到了一些教程,但对我来说没什么用。这是我的代码的一部分:
@RequestMapping(value = "/get-frame/{fileId}", method = RequestMethod.GET)
public void getVideoFrame(@PathVariable("fileId") String filename,
HttpServletResponse response) throws IOException {
...
...
...
byte[] image = ...
OutputStream outputStream = response.getOutputStream();
outputStream.write(image);
outputStream.close();
response.flushBuffer();
}
此方法始终返回错误406.问题是什么?
由于
答案 0 :(得分:1)
您应该设置标题,内容类型和响应的长度。
try (OutputStream out = response.getOutputStream()) {
byte[] image = ...
response.setContentLength(image.length);
response.setContentType("image/png"); //or something more generic...
response.setHeader("Accept-Ranges", "bytes");
response.setStatus(HttpServletResponse.SC_OK);
out.write(image);
}