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

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WebClient中的文件上傳與下載是怎樣的

發布時間:2022-01-17 18:40:47 來源:億速云 閱讀:166 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關WebClient中的文件上傳與下載是怎樣的,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

WebClient是從Spring 5開始提供的一個HTTP客戶端庫,為了使用WebClient進行文件上傳和下載,需要我們先編寫服務端的支持文件上傳和下載的程序。請參考我之前寫的一篇文章:SpringBoot實現本地存儲文件上傳及提供HTTP訪問服務。按照此文完成學習之后,可以獲得

  • 一個以訪問服務URI為"/upload”的文件上傳服務端點

  • 服務端點上傳文件成功后會返回一個HTTP連接,可以用來下載文件。

下面我們就開始學習使用WebClient是HTTP客戶端庫,進行文件的上傳與下載。

一、文件上傳

在本地8888端口搭建了一個文件上傳接收的服務端,服務端點為“/upload”。上傳本地磁盤中的一個文件"D:\data\local\splash.png"

@SpringBootTest
class UpDownLoadTests {

   //創建webClient
   private WebClient webClient = WebClient.builder()
               .baseUrl("http://localhost:8888/")
               .build();

   [@Test](https://my.oschina.net/azibug)
   void testUpload()  {
      // 待上傳的文件(存在客戶端本地磁盤)
      String filePath = "D:\\data\\local\\splash.png";
      // 封裝請求參數
      FileSystemResource resource = new FileSystemResource(new File(filePath));
      MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
      param.add("uploadFile", resource);  //服務端MultipartFile uploadFile
      //param.add("param1", "test");   //服務端如果接受額外參數,可以傳遞

      // 發送請求
      Mono<String> mono = webClient
                  .post() // POST 請求
                  .uri("/upload")  // 請求路徑
                  .contentType(MediaType.APPLICATION_FORM_URLENCODED)
                  .body(BodyInserters.fromMultipartData(param))
                  .retrieve() // 獲取響應體
                  .bodyToMono(String.class); //響應數據類型轉換

      // 輸出結果
      System.out.println(mono.block());
   }
}

輸出打印結果如下:

WebClient中的文件上傳與下載是怎樣的

文章上傳之后返回一個HTTP URL訪問地址,可以通過瀏覽器訪問,也可以通過程序下載。

二、文件下載

執行下列代碼之后,被下載文件url,會被正確的保存到本地磁盤目錄

[@Test](https://my.oschina.net/azibug)
void testDownLoad() throws IOException {
   Mono<ClientResponse> mono = webClient
               .get() // GET 請求
               .uri("/2020/08/22/0f0a353a-7033-4a13-832e-d043f6360514.png")  // 請求路徑
               .accept(MediaType.APPLICATION_OCTET_STREAM)
               .exchange(); // 獲取響應體

   ClientResponse response = mono.block();
   Resource resource = response.bodyToMono(Resource.class).block();

   assert resource != null;
   Files.copy(resource.getInputStream(),
            Paths.get("D:\\data\\local\\splash-down.png" ));

}

上述就是小編為大家分享的WebClient中的文件上傳與下載是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广平县| 溧阳市| 锡林浩特市| 广昌县| 磐安县| 吉林省| 小金县| 枣强县| 冀州市| 隆化县| 三明市| 永康市| 镶黄旗| 汝阳县| 沈阳市| 财经| 黄平县| 合山市| 长海县| 山阴县| 都匀市| 绩溪县| 门源| 佛教| 新郑市| 叙永县| 屏东市| 辽宁省| 邵阳县| 新邵县| 东安县| 千阳县| 柯坪县| 澳门| 阿坝| 宝清县| 宣城市| 安图县| 凤台县| 镶黄旗| 托里县|