亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

在SpringBoot中實現文件打包下載功能

小億
182
2023-12-22 07:53:06
欄目: 編程語言

在Spring Boot中實現文件打包下載功能,可以使用以下步驟:

  1. pom.xml文件中添加以下依賴:
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>
  1. 創建一個Controller類,并添加@RestController@RequestMapping注解。例如:
@RestController
@RequestMapping("/download")
public class DownloadController {

    @GetMapping("/zip")
    public ResponseEntity<Resource> downloadZip() throws IOException {
        // 創建一個臨時目錄來存儲要打包的文件
        Path tempDirectory = Files.createTempDirectory("temp");
        
        // 將要打包的文件復制到臨時目錄中
        Files.copy(Paths.get("path/to/file1"), tempDirectory.resolve("file1.txt"));
        Files.copy(Paths.get("path/to/file2"), tempDirectory.resolve("file2.txt"));
        // ...

        // 創建一個臨時壓縮文件
        Path tempZipFile = Files.createTempFile("temp", ".zip");

        // 壓縮臨時目錄中的文件
        ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(tempZipFile.toFile()));
        Files.walk(tempDirectory)
                .filter(path -> !Files.isDirectory(path))
                .forEach(path -> {
                    try {
                        ZipEntry zipEntry = new ZipEntry(tempDirectory.relativize(path).toString());
                        zipOutputStream.putNextEntry(zipEntry);
                        zipOutputStream.write(Files.readAllBytes(path));
                        zipOutputStream.closeEntry();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                });
        zipOutputStream.close();

        // 構建ResponseEntity對象并返回
        Resource zipResource = new FileSystemResource(tempZipFile.toFile());
        return ResponseEntity.ok()
                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"download.zip\"")
                .body(zipResource);
    }
}
  1. application.properties文件中配置臨時文件目錄:
spring.servlet.multipart.enabled=false
spring.http.multipart.enabled=false
spring.servlet.multipart.location=${java.io.tmpdir}
  1. 啟動Spring Boot應用程序,并訪問http://localhost:8080/download/zip即可下載打包好的文件。

在上述代碼中,我們首先創建一個臨時目錄,并將要打包的文件復制到該目錄中。然后,我們創建一個臨時壓縮文件,并使用ZipOutputStream將臨時目錄中的文件壓縮到該文件中。最后,我們將壓縮文件作為Resource對象返回給客戶端,使其可以下載該文件。

0
黔西县| 太仆寺旗| 八宿县| 闻喜县| 灵台县| 玛曲县| 鄯善县| 新建县| 浑源县| 旺苍县| 临沭县| 巩留县| 布拖县| 库伦旗| 衡山县| 宣化县| 鸡西市| 田林县| 喜德县| 兴文县| 蓬溪县| 略阳县| 潼关县| 德昌县| 许昌市| 平顶山市| 安阳市| 汉寿县| 安丘市| 曲靖市| 黎平县| 兴山县| 抚顺县| 庆城县| 长沙市| 罗甸县| 祁门县| 达日县| 平阴县| 屯留县| 台山市|