我正在使用spring框架用java开发restapi。其中一个端点是以流的形式返回文件,我编写了以下方法:
@GetMapping(value="/v2/document/{guid}/file", produces = {"*/*"})
@ResponseBody
public ResponseEntity<StreamingResponseBody> getFile(@PathVariable("guid") String guid) throws Exception {
String fileName = FindFile(guid);
Path path = Paths.get(Paths.get(FileSystemRepository.reportsDir).toString(), Paths.get(fileName).toString());
StreamingResponseBody responseBody = outputStream -> {
Files.copy(path, outputStream);
};
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.valueOf(Files.probeContentType(path)));
return new ResponseEntity(responseBody, responseHeaders, HttpStatus.OK);
}
当我构建项目并将其部署到windows上的tomcat服务器上时,它可以正常工作,并按预期下载文件。但是,当我将其托管在linux计算机上时,在尝试下载文件时出现以下错误:
我要获取的文件存在于我在方法中创建的路径中:
对发生的事有什么看法吗?我的日志工作不正常,但如果我得到它的工作,我会更新与相关的信息票。
暂无答案!
目前还没有任何答案,快来回答吧!