日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

上传文件(Uploading Files)

發布時間:2024/6/30 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 上传文件(Uploading Files) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建可以接收HTTP多部分文件上傳的服務器應用程序

你會建立什么

您將創建一個接受文件上傳的Spring Boot Web應用程序。您還將構建一個簡單的HTML界面來上傳測試文件。

環境依賴

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency>

創建一個應用程序類

要開始一個Spring Boot MVC應用程序,我們首先需要一個啟動器;?這里,spring-boot-starter-thymeleaf和spring-boot-starter-web已經被添加為依賴。要使用Servlet容器上傳文件,您需要注冊一個MultipartConfigElement類(它是web.xml中的<multipart-config>)。感謝Spring Boot,一切都為您自動配置!

作為自動配置Spring MVC的一部分,Spring Boot將創建一個MultipartConfigElement?bean并為文件上傳做好準備。

創建一個文件上傳控制器

初始應用程序已經包含幾個類來處理在磁盤上存儲和加載上傳的文件;?它們都在hello.storage包。將在FileUploadController中使用它們。

src/main/java/hello/FileUploadController.java

這個類被@Controller注釋,所以Spring MVC能獲得它并找到路由。每個方法都標記為@GetMapping或@PostMapping,為了將路徑和HTTP操作綁定到一個特定的控制器操作。

在這個例子中:

GET /:從StorageService中,獲取上傳的文件的當前列表,并將其加載到Thymeleaf模板中。使用MvcUriComponentsBuilder,它計算一個到實際資源的鏈接

GET /files/{filename}:如果資源存在,則加載資源;并使用"Content-Disposition"響應標頭,將其發送到瀏覽器進行下載

POST /:處理一個多部分的消息file,并將其交給StorageService以保存

為了控制器與存儲層交互,您需要StorageService。

src/main/java/hello/storage/StorageService.java

創建一個簡單的HTML模板

src/main/resources/templates/uploadForm.html

這個模板有三個部分:

頂部的Spring MVC寫閃存范圍消息的可選消息

允許用戶上傳文件的表單

從后端提供的文件列表

調整文件上傳限制

配置文件上傳時,通常對文件大小設置限制。想象一下,試圖處理5GB文件上傳!我們可以調整它的自動配置MultipartConfigElement的一些屬性設置。

src/main/resources/application.properties

spring.http.multipart.max-file-size=128KB,文件總大小不能超過128KB。

spring.http.multipart.max-request-size=128KB,一個multipart/form-data的總請求大小不能超過128KB。

您還需要一個目標文件夾來上傳文件,因此我們來增強基本Application類并添加一個Boot?CommandLineRunner,它將在啟動時刪除并重新創建該文件夾:

src/main/java/hello/Application.java

這將運行接收文件上傳的服務器端部分。日志輸出顯示。

在服務器運行時,您需要打開瀏覽器并訪問 http://localhost:8080/??以查看上載表單。

測試你的應用

有多種方法可以在我們的應用程序中測試這個特定的功能。這是一個利用MockMvc的例子,所以它不需要啟動Servlet容器:

src/test/java/hello/FileUploadTests.java

在這些測試中,我們使用各種模擬來設置與控制器和StorageService的交互,同時使用MockMultipartFile來與Servlet容器本身進行交互。

集成測試的一個例子,請查看FileUploadIntegrationTests類。

概要

恭喜!您剛剛編寫了一個使用Spring處理文件上傳的Web應用程序。

參考資料:Uploading Files

源碼:https://gitee.com/SevenDayBabyface/demo

轉載于:https://www.cnblogs.com/xsj891107/p/8459642.html

總結

以上是生活随笔為你收集整理的上传文件(Uploading Files)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。