欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Java根據文件路徑下載zip文件到本地代碼示例

 更新時間:2024年03月25日 10:17:59   作者:北暮城南  
在開發(fā)過程中我們會遇到需要對文件進行壓縮并下載的功能需求,這篇文章主要給大家介紹了關于如何使用Java根據文件路徑下載zip文件到本地的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

需求:

下載目標文件,其中目標文件是本地某個文件中的zip文件,如:D:/CODE/test.zip。

1. 代碼示例:

    /**
     * 下載目標文件,其中目標文件是zip文件
     *
     * @param targetFile 目前文件
     * @param response
     * @return
     */
    @GetMapping("/download")
    @ApiOperation("下載目標文件,其中目標文件是zip文件")
    public void download(@RequestParam String targetFile, HttpServletResponse response) {
        // 讀取目標zip文件,并利用response輸出 D:\CODE\Git_dy
        String folderPath = "D:/CODE/";
        String filePath = folderPath + targetFile;

        try (FileInputStream fileInputStream = new FileInputStream(filePath)) {
            response.setContentType("application/octet-stream");
            response.setHeader("Content-Disposition", "attachment;filename=\"" + targetFile + "\"");
            response.setHeader("Access-Control-Allow-Origin", "*");

            File downloadFile = new File(filePath);
            if (downloadFile.exists()) {
                FileInputStream myStream = new FileInputStream(filePath);
                IOUtils.copy(myStream, response.getOutputStream());
            }
            response.flushBuffer();
            log.info("獲取文件成功!");
        } catch (IOException e) {
            log.error(e.getMessage());
        }
    }

其中:IOUtils的包是:package org.apache.tomcat.util.http.fileupload

2. 代碼解析:

response.setHeader(name, value)方法中,name參數(shù)表示要設置的HTTP響應頭的名稱,value參數(shù)表示該響應頭的值。HTTP響應頭允許服務器向瀏覽器傳遞關于響應的一些元信息。

在包org.springframework.http下面:包含了各種請求頭名稱:如

以下是一些常見的HTTP響應頭名稱及其示例:

response.setHeader("Content-Type", "text/html; charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"example.txt\"");
response.setHeader("Cache-Control", "max-age=3600");
response.setHeader("Expires", "Thu, 01 Dec 2023 16:00:00 GMT");
response.setHeader("Set-Cookie", "sessionid=123456789; Path=/; Secure; HttpOnly");
response.setHeader("Location", "https://www.example.com");

String contentType = HttpHeaders.CONTENT_TYPE;
String contentDisposition = HttpHeaders.CONTENT_DISPOSITION;
String cacheControl = HttpHeaders.CACHE_CONTROL;
String expires = HttpHeaders.EXPIRES;
String setCookie = HttpHeaders.SET_COOKIE;
String location = HttpHeaders.LOCATION;
  • Content-Type: 指定響應體的MIME類型,告訴瀏覽器如何處理響應的內容。
  • Content-Disposition: 設置下載的文件名和方式。通常用于文件下載時,指定文件名和打開方式。
  • Cache-Control: 控制緩存的行為,例如緩存的有效時間和是否允許緩存。
  • Expires: 設置響應的過期時間,用于控制瀏覽器是否需要重新請求資源。
  • Set-Cookie: 設置一個HTTP Cookie,用于在客戶端存儲會話信息或其他數(shù)據。
  • Location: 用于重定向,指示瀏覽器應該跳轉到哪個URL。

"application/octet-stream"是一個通用的MIME類型,用于表示未知的二進制數(shù)據。在HTTP響應頭中,如果服務器不知道要傳輸?shù)臄?shù)據的具體MIME類型,通常會使用"application/octet-stream"來表示通用的二進制數(shù)據類型。

HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN是一個HTTP響應頭,用于實現(xiàn)跨域資源共享(Cross-Origin Resource Sharing,CORS)。CORS是一種機制,允許Web瀏覽器在同源策略限制下向不同源(域名、端口、協(xié)議)的服務器發(fā)送跨域請求。

  • *: 表示允許任意源(任意域名、任意端口、任意協(xié)議)的請求訪問資源,這樣的配置允許所有網站訪問資源,但可能會存在安全風險,不推薦在生產環(huán)境中使用。
  • 具體的域名: 表示允許特定的域名訪問資源,例如http://example.com,這樣的配置只允許example.com域名的請求訪問資源。

總結 

到此這篇關于使用Java根據文件路徑下載zip文件到本地的文章就介紹到這了,更多相關Java下載zip文件到本地內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • mybatis連接mysql的實現(xiàn)過程

    mybatis連接mysql的實現(xiàn)過程

    通過配置Maven的pom文件,可以簡化MyBatis連接數(shù)據庫的過程,免去手動下載和導入各種依賴包的麻煩,本文介紹了如何利用Maven導入MyBatis及其他相關依賴,如Junit、MySQL連接驅動、Druid連接池和Dbutil等,以簡化數(shù)據庫操作和測試
    2024-10-10
  • 利用consul在spring boot中實現(xiàn)分布式鎖場景分析

    利用consul在spring boot中實現(xiàn)分布式鎖場景分析

    這篇文章通過場景分析給大家介紹如何利用consul在spring boot中實現(xiàn)簡單的分布式鎖功能,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-09-09
  • Spring Boot集成Spring Cloud Security進行安全增強的方法

    Spring Boot集成Spring Cloud Security進行安全增強的方法

    Spring Cloud Security是Spring Security的擴展,它提供了對Spring Cloud體系中的服務認證和授權的支持,包括OAuth2、JWT等,這篇文章主要介紹了Spring Boot集成Spring Cloud Security進行安全增強,需要的朋友可以參考下
    2024-11-11
  • JVM---jstack分析Java線程CPU占用,線程死鎖的解決

    JVM---jstack分析Java線程CPU占用,線程死鎖的解決

    這篇文章主要介紹了JVM---jstack分析Java線程CPU占用,線程死鎖的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java web實現(xiàn)分頁查詢實例方法

    java web實現(xiàn)分頁查詢實例方法

    在本篇文章里我們給大家分享了java web實現(xiàn)分頁查詢的詳細方法知識點,有需要的朋友們參考學習下。
    2018-10-10
  • Spring創(chuàng)建bean對象三種方式代碼實例

    Spring創(chuàng)建bean對象三種方式代碼實例

    這篇文章主要介紹了Spring創(chuàng)建bean對象三種方式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java中List<T>和List<?>的區(qū)別詳解

    Java中List<T>和List<?>的區(qū)別詳解

    這篇文章主要介紹了Java中List<T>和List<?>的區(qū)別詳解。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Java8的EnumMap源碼分析

    Java8的EnumMap源碼分析

    這篇文章主要介紹了Java8的EnumMap源碼分析,EnumMap 是一個用于存儲 key 為枚舉類型的 map,底層使用數(shù)組實現(xiàn)(K,V 雙數(shù)組),與其他類型 map 不同的是 EnumMap 底層使用雙數(shù)組來存儲 key 與 value,key 數(shù)組會在構造函數(shù)中根據 keyType 進行初始化,需要的朋友可以參考下
    2023-11-11
  • java排序算法圖文詳解

    java排序算法圖文詳解

    這篇文章主要為大家詳細介紹了Java經典排序算法之歸并排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望可以對你有所幫助
    2021-07-07
  • SpringBoot實現(xiàn)識別圖片中的身份證號與營業(yè)執(zhí)照信息

    SpringBoot實現(xiàn)識別圖片中的身份證號與營業(yè)執(zhí)照信息

    這篇文章主要為大家詳細介紹了SpringBoot如何實現(xiàn)識別圖片中的身份證號與營業(yè)執(zhí)照信息,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2024-01-01

最新評論