下面是Spring Boot实现文件下载功能的攻略:
准备工作
在开始Spring Boot实现文件下载功能之前,需要先在pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
方式一:使用ResponseEntity
实现文件下载
1.编写文件下载的控制器FileController
@Controller
public class FileController {
@Autowired
private ResourceLoader resourceLoader;
@GetMapping("/download")
public ResponseEntity downloadFile(@RequestParam("fileName") String fileName) throws IOException {
// 获取资源文件
Resource resource = resourceLoader.getResource("classpath:static/" + fileName);
// 设置响应头信息
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Disposition", "attachment; filename=" + fileName);
// 构造响应实体对象
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(resource.getFile()),
headers, HttpStatus.OK);
}
}
2.访问http://localhost:8080/download?fileName=xxx
即可下载名为xxx
的文件。
方式二:使用HttpServletResponse
实现文件下载
1.编写文件下载控制器FileController
@Controller
public class FileController {
@Autowired
private ResourceLoader resourceLoader;
@GetMapping("/download")
public void downloadFile(@RequestParam("fileName") String fileName, HttpServletResponse response) throws IOException {
// 获取资源文件
Resource resource = resourceLoader.getResource("classpath:static/" + fileName);
// 设置响应头信息
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
// 写入数据
OutputStream outputStream = response.getOutputStream();
IOUtils.copy(resource.getInputStream(), outputStream);
outputStream.flush();
outputStream.close();
}
}
2.访问http://localhost:8080/download?fileName=xxx
即可下载名为xxx
的文件。
希望以上内容能帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot实现文件下载功能的方式分享 - Python技术站