天天看點

springboot(十七):使用Spring Boot上傳檔案

上傳檔案是網際網路中常常應用的場景之一,最典型的情況就是上傳頭像等,今天就帶着帶着大家做一個Spring Boot上傳檔案的小案例。

我們使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。

引入了<code>spring-boot-starter-thymeleaf</code>做頁面模闆引擎,寫一些簡單的上傳示例。

tomcatEmbedded這段代碼是為了解決,上傳檔案大于10M出現連接配接重置的問題。此異常内容GlobalException也捕獲不到。

springboot(十七):使用Spring Boot上傳檔案

上傳頁面

非常簡單的一個Post請求,一個選擇框選擇檔案,一個送出按鈕,效果如下:

springboot(十七):使用Spring Boot上傳檔案

上傳結果展示頁面:

效果圖如下:

springboot(十七):使用Spring Boot上傳檔案

通路localhost自動跳轉到上傳頁面:

上傳業務處理

上面代碼的意思就是,通過<code>MultipartFile</code>讀取檔案資訊,如果檔案為空跳轉到結果頁并給出提示;如果不為空讀取檔案流并寫入到指定目錄,最後将結果展示到頁面。

<code>MultipartFile</code>是Spring上傳檔案的封裝類,包含了檔案的二進制流和檔案屬性等資訊,在配置檔案中也可對相關屬性進行配置,基本的配置資訊如下:

<code>spring.http.multipart.enabled=true</code> #預設支援檔案上傳.

<code>spring.http.multipart.file-size-threshold=0</code> #支援檔案寫入磁盤.

<code>spring.http.multipart.location=</code># 上傳檔案的臨時目錄

<code>spring.http.multipart.max-file-size=1Mb</code> # 最大支援檔案大小

<code>spring.http.multipart.max-request-size=10Mb</code> # 最大支援請求大小

最常用的是最後兩個配置内容,限制檔案上傳大小,上傳時超過大小會抛出異常:

springboot(十七):使用Spring Boot上傳檔案

設定一個<code>@ControllerAdvice</code>用來監控<code>Multipart</code>上傳的檔案大小是否受限,當出現此異常時在前端頁面給出提示。利用<code>@ControllerAdvice</code>可以做很多東西,比如全局的統一異常處理等,感興趣的同學可以下來了解。

這樣一個使用Spring Boot上傳檔案的簡單Demo就完成了,感興趣的同學可以将示例代碼下載下傳下來試試吧。

參考:

<a href="http://www.mkyong.com/spring-boot/spring-boot-file-upload-example/">Spring Boot file upload example</a>

<a href="https://github.com/ityouknow/spring-boot-examples">示例代碼-github</a>

<a href="https://gitee.com/ityouknow/spring-boot-examples">示例代碼-碼雲</a>

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

本文如對您有幫助,還請多幫 <b>【推薦】</b> 下此文。

如果喜歡我的文章,請關注我的公衆号

下一篇: 搬家