
文件上傳與下載是Web應用開發中常用的功能之一。本節將講解如何在Spring Boot的Web應用開發中,如何實現文件的上傳與下載。
01
Spring Boot文件上傳與下載
在實際的Web應用開發中,為了成功上傳文件,必須將表單的method設置為post,並將enctype設置為multipart/form-data。只有這種設置,瀏覽器才能將所選文件的二進制數據發送給服務器。
從Servlet 3.0開始,就提供了處理文件上傳的方法,但這種文件上傳需要在Java Servlet中完成,而Spring MVC提供了更簡單的封裝。Spring MVC是通過Apache Commons FileUpload技術實現一個MultipartResolver的實現類CommonsMultipartResolver完成文件上傳的。因此,Spring MVC的文件上傳需要依賴Apache Commons FileUpload組件。
Spring MVC將上傳文件自動綁定到MultipartFile對象中,MultipartFile提供了獲取上傳文件內容、文件名等方法,並通過transferTo方法將文件上傳到服務器的磁盤中,MultipartFile的常用方法如下:
●byte[] getBytes():獲取文件數據。
● String getContentType():獲取文件MIME類型,如image/jpeg等。
● InputStream getInputStream():獲取文件流。
● String getName():獲取表單中文件組件的名字。
● String getOriginalFilename():獲取上傳文件的原名。
● long getSize():獲取文件的字節大小,單位為byte。
● boolean isEmpty():是否有(選擇)上傳文件。
● void transferTo(File dest):將上傳文件保存到一個目標文件中。
Spring Boot的spring-boot-starter-web已經集成了Spring MVC,所以使用Spring Boot實現文件上傳,更加便捷,只需要引入Apache Commons FileUpload組件依賴即可。
下面通過一個實例講解Spring Boot文件上傳與下載的實現過程。
【例7-7】Spring Boot文件上傳與下載。
具體實現步驟如下。
1
●
引入Apache Commons FileUpload
組件依賴
在Web應用ch7_2的pom.xml文件中,添加Apache Commons FileUpload組件依賴,具體代碼如下:
2
●
設置上傳文件大小限制
在Web應用ch7_2的配置文件application.properties中,添加如下配置進行限制上傳文件大小。
3
●
創建選擇文件視圖頁面
在ch7_2應用的src/main/resources/templates目錄下,創建選擇文件視圖頁面uploadFile.html。該頁面中有個enctype屬性值為multipart/form-data的form表單,具體代碼如下:
4
●
創建控制器
在ch7_2應用的com.ch.ch7_2.controller包中,創建控制器類TestFileUpload。在該類中有4個處理方法,一個是界面導航方法uploadFile,一個是實現文件上傳的upload方法,一個是顯示將要被下載文件的showDownLoad方法,一個是實現下載功能的download方法。核心代碼如下:
5
●
創建文件下載視圖頁面
在ch7_2應用的src/main/resources/templates目錄下,創建文件下載視圖頁面showFile.html。核心代碼如下:
6
●
運行
首先,運行Ch72Application主類。然後,訪問http://localhost:8080/ch7_2/uploadFile測試文件上傳與下載。
SSM + Spring Boot + Vue.js 3
全棧開發從入門到實戰

精彩回顧
SSM框架整合開發
下期預告
使用Visual Studio Code開發第一個Vue程序
Vue進階——使用靜態模塊打包工具webpack
✦
02
參考書籍
《SSM + Spring Boot + Vue.js 3全棧開發從入門到實戰(微課視頻版)》
ISBN:9787302598503
作者:陳恆 李正光
定價:99.80元




03
精彩推薦