/**
* 返回文件流
*
* @param response
*/
@PostMapping("/getFile")
public void getFileInputStream(HttpServletResponse response) throws Exception {
// File file = new File("/test.log");
// FileInputStream fis = new FileInputStream(file);
InputStream is = sftpUtil.getFileStream("test");
response.setContentType("application/x-msdownload;");
response.setHeader("Content-disposition", "attachment;filename=" + "文件名");
//注:如果返回content-length的时候,先复制一下输入流,此时记录文件长度,返回复制之后的文件流
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
byte[] buffer = new byte[2048];
int len;
while ((len = bis.read(buffer, 0, buffer.length)) != -1) {
bos.write(buffer, 0, len);
bos.flush();
}
if (bis != null) {
bis.close();
}
if (bos != null) {
bos.close();
}
}
feign调用的时候,返回response,从response中获取返回的文件流,在返回出去
Response is = testProivder.getFileInput();
InputStream inputStream =is.body.asInputStream();