HttpServletResponse返回文件下载
时间: 2023-11-08 19:46:48 浏览: 223
在使用 HttpServletResponse 返回文件下载时,你需要设置正确的响应头信息和输出流,以下是一个示例代码:
```java
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
public class FileDownloadServlet {
public void downloadFile(HttpServletResponse response, String filePath) throws IOException {
File file = new File(filePath);
// 设置响应头
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
response.setContentLength((int) file.length());
// 使用文件输入流读取文件内容
FileInputStream fis = new FileInputStream(file);
// 获取响应输出流
OutputStream os = response.getOutputStream();
// 缓冲区大小,可根据实际情况调整
byte[] buffer = new byte[1024];
int bytesRead;
// 逐个字节写入输出流
while ((bytesRead = fis.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
// 关闭流
fis.close();
os.close();
}
}
```
在你的 Servlet 或 Controller 中调用 `downloadFile` 方法,并传入 `HttpServletResponse` 对象和要下载的文件路径即可实现文件下载功能。
阅读全文