springboot把文件打成zip返回给前端
时间: 2024-10-25 12:12:36 浏览: 17
springboot整合vue实现上传下载文件
Spring Boot 提供了一种简单的方式来处理将项目打包为 ZIP 文件并将其作为响应直接发送给前端的需求。这通常通过 Spring MVC 的 @RestController 和相关的 @ResponseBody 注解来实现。你可以创建一个简单的 Controller 类,如下面所示:
```java
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
@RestController
public class FileDownloadController {
@GetMapping("/download")
public ResponseEntity<byte[]> downloadFile() throws IOException {
// 假设有个静态目录存放你的文件
String filePath = "path/to/your/file.zip";
// 读取文件内容
byte[] fileContent = Files.readAllBytes(Paths.get(filePath));
// 设置响应头信息,指定 Content-Disposition 以指示下载
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.zip");
// 返回 ResponseEntity 对象,包含文件内容和响应头
return ResponseEntity.ok().headers(headers).contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(fileContent);
}
}
```
当访问 `/download` 路径时,系统会将指定路径的 `file.zip` 包作为二进制数据返回,并提示浏览器以下载的形式接收。
阅读全文