return ResponseEntity
.ok()
.headers(headers)
.contentLength(contentLength)
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(new FileSystemResource(new File("")));
生产环境上使用FileSystemResource 类去返回流,结果只接受来自↓路径下的File,其它路径一律无法返回文件
HttpServletRequest.getServletContext().getRealPath("/");
但是因为↑该路径的挂载分区硬盘太小,所以换成硬盘更大的挂载分区,但是却无法返回文件
查看自定义路径下,文件也确实有生成
后面改成↓
return ResponseEntity
.ok()
.headers(headers)
.contentLength(contentLength)
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(new InputStreamResource(new FileInputStream(new File(""))));
成功返回文件
后记:
可能是FileSystemResource无法接受跨分区的文件File对象吧,具体原因不是很清楚
如果有大神知道,可以在评论中告诉我,谢谢
如果帮到你,请点个赞吧 O(∩_∩)O~