springmvc返回文件流
时间: 2023-07-12 20:35:35 浏览: 56
在 Spring MVC 中,可以通过设置响应头和使用 OutputStream 将文件流返回给客户端。
以下是一个简单的示例代码,演示如何返回文件流:
```java
@RequestMapping(value = "/downloadFile", method = RequestMethod.GET)
public void downloadFile(HttpServletResponse response) {
try {
// 设置响应头
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=test.txt");
// 读取文件流
InputStream inputStream = new FileInputStream(new File("path/to/test.txt"));
OutputStream outputStream = response.getOutputStream();
// 将文件流写入输出流
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
// 关闭输入输出流
inputStream.close();
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
```
在该示例中,首先设置响应头,指定了文件的 MIME 类型和文件名。然后通过 InputStream 读取文件流,再通过 OutputStream 将文件流写入响应输出流中,最后关闭输入输出流。客户端会收到一个下载文件的提示框,让用户选择保存文件的路径。