天天看點

SpringBoot實作檔案上傳下載下傳的功能

SpringBoot我們大多數的時候是當做服務提供者來使用的,但是在一些場景中還是要用到一些檔案上傳下載下傳這種"非正常"操作的。那麼怎麼在SpringBoot中實作檔案的上傳下載下傳功能呢?想象一些我們在SpringMVC中是怎麼做的。我們需要在SpringMVC的配置檔案中增加檔案上傳的Bean的配置,如下:

然後在背景對應的處理方法中就可以直接擷取到檔案的輸入流了。而對于SpringBoot來說,我們不需要配置檔案上傳的解析類了,因為SpringBoot已經幫我們注冊好了。下面我們來看一下具體的開發。

這裡我們用thymeleaf來作為頁面的呈現,是以我們這裡需要引入thymeleaf的相關依賴:

接着我們需要寫一個檔案的上傳下載下傳的頁面,我簡單的寫了下面這個頁面

接着我們寫一個處理檔案上傳和下載下傳的控制類:

當我們發送請求為:http://localhost:8003/uploadAndDownload/index,會看到如下的頁面(沒有做排版處理):

SpringBoot實作檔案上傳下載下傳的功能

當我們上傳檔案時,會調用uploadFileAction這個方法,然後将上傳的檔案資訊存放到一個地方,根據個人的需求去做。

SpringBoot實作檔案上傳下載下傳的功能

當我們下載下傳檔案時:

SpringBoot實作檔案上傳下載下傳的功能

有時候我們可能需要限制上傳檔案的大小,可以這樣設定上傳檔案的大小:

有時候我們可能還要進行一些檔案類型的現在,那麼這個怎麼做呢?我們可以通過自定的Interceptor來實作這樣的功能。代碼示例如下:

新增配置資訊:

這樣我們的程式在運作的時候就會把不是txt或者docs檔案類型的檔案給過濾掉。