SpringBoot下载文件代码
时间: 2023-06-06 10:08:42 浏览: 89
很高兴为您解答关于SpringBoot下载文件的问题。我们可以使用SpringBoot提供的Resource类和ResponseEntity类轻松实现文件下载功能。请参考下面的代码:
```
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile(@RequestParam("fileName") String fileName) {
// 从指定路径读取文件
Resource file = new FileSystemResource("/path/to/file/" + fileName);
// 返回文件下载响应
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
.body(file);
}
```
这段代码会将指定路径下的文件作为附件直接返回给浏览器,浏览器会自动触发下载操作。当然,您需要根据具体的业务场景修改代码。希望这个回答能够解决您的问题。如果您还有其他问题,欢迎继续提问。
相关问题
java Springboot 下载文件代码
以下是使用 Spring Boot 下载文件的示例代码:
```java
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile(@RequestParam String fileName) {
// 获取文件资源
Resource resource = new FileSystemResource("/path/to/files/" + fileName);
// 设置 Content-Disposition 头部信息,指定文件名和文件类型
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"");
return ResponseEntity.ok()
.headers(headers)
.contentLength(resource.contentLength())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(resource);
}
```
在上面的代码中,我们首先获取文件资源,然后设置 Content-Disposition 头,指定文件名和文件类型,最后将文件资源作为响应的主体返回。
需要注意的是,这里使用了 `ResponseEntity` 对象来设置响应的头部信息、状态码和主体内容。同时,我们也设置了 Content-Type 为 `APPLICATION_OCTET_STREAM`,表示这是一个二进制文件流,可以用于下载任何类型的文件。
springboot上传下载文件代码
好的,以下是一个基于Spring Boot框架的文件上传和下载代码示例:
文件上传:
```java
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
try {
// 获取上传的文件名
String fileName = file.getOriginalFilename();
// 将文件保存到本地磁盘
file.transferTo(new File("C:/temp/" + fileName));
return "上传成功!";
} catch (IOException e) {
e.printStackTrace();
}
return "上传失败!";
}
```
文件下载:
```java
@GetMapping("/download")
public ResponseEntity<byte[]> downloadFile() throws IOException {
// 读取本地文件
File file = new File("C:/temp/test.txt");
FileInputStream fis = new FileInputStream(file);
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
fis.close();
// 构造ResponseEntity对象,设置响应头和下载内容
HttpHeaders headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment", URLEncoder.encode(file.getName(), "UTF-8"));
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
ResponseEntity<byte[]> responseEntity = new ResponseEntity<>(bytes, headers, HttpStatus.OK);
return responseEntity;
}
```
以上代码中,文件上传的接口路径为`/upload`,文件下载的接口路径为`/download`。其中,上传接口的参数是`MultipartFile`类型的`file`,下载接口返回的是`ResponseEntity<byte[]>`类型的响应对象。
希望这个代码示例能够帮助到您!