😊 SpringMVC实现文件下载的两种方式
在Java开发中,文件下载是一个常见的需求。利用SpringMVC框架,我们可以轻松实现这一功能。以下是两种主流的实现方式,帮助开发者快速上手!
第一种是通过`ResponseEntity`实现:
这种方式直接返回一个`ResponseEntity`对象,设置响应头和文件流。代码简洁且直观,适合快速开发场景。例如:
```java
@GetMapping("/download")
public ResponseEntity
Resource resource = new UrlResource("file:path/to/your/file");
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
.body(resource);
}
```
第二种则是通过`OutputStream`实现:
这种方式需要手动操作输出流,灵活性更强。适用于需要对下载过程进行更精细控制的场景。示例代码如下:
```java
@GetMapping("/download")
public void downloadFile(HttpServletResponse response) throws IOException {
File file = new File("path/to/your/file");
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
Files.copy(file.toPath(), response.getOutputStream());
response.getOutputStream().flush();
}
```
这两种方法各有千秋,可根据实际项目需求选择哦!✨