😊 SpringMVC实现文件下载的两种方式

导读 在Java开发中,文件下载是一个常见的需求。利用SpringMVC框架,我们可以轻松实现这一功能。以下是两种主流的实现方式,帮助开发者快速上手...

在Java开发中,文件下载是一个常见的需求。利用SpringMVC框架,我们可以轻松实现这一功能。以下是两种主流的实现方式,帮助开发者快速上手!

第一种是通过`ResponseEntity`实现:

这种方式直接返回一个`ResponseEntity`对象,设置响应头和文件流。代码简洁且直观,适合快速开发场景。例如:

```java

@GetMapping("/download")

public ResponseEntity downloadFile() {

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();

}

```

这两种方法各有千秋,可根据实际项目需求选择哦!✨

版权声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。