springboot vue怎么实现文件下载
时间: 2024-05-08 21:20:10 浏览: 53
要实现文件下载,可以在后端 SpringBoot 中创建一个控制器,使用 HttpServletResponse 对象将文件以流的形式输出到客户端。具体代码如下:
```
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
// 从服务器中获取要下载的文件路径,比如:String filePath = "/path/to/file.pdf";
File file = new File(filePath);
// 创建文件输入流
InputStream in = new FileInputStream(file);
// 设置响应头
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
// 创建输出流
OutputStream out = response.getOutputStream();
// 缓冲区大小
byte[] buffer = new byte[1024];
int len = -1;
// 读取文件并输出到客户端
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.flush();
// 关闭流
out.close();
in.close();
}
```
这段代码中,@GetMapping 指定了对应的请求 URL,即文件下载请求。通过 HttpServletResponse 对象设置响应头,告诉客户端要下载的文件名称以及文件类型。然后从服务器中读取要下载的文件,并用输出流将文件以流的形式输出到客户端。最后记得关闭流。在前端 Vue 中,可以通过 a 标签将文件下载请求 URL 作为 href 属性值,即可实现文件下载。
阅读全文