SpringMVC中實現檔案上傳

2021-07-13 23:56:24 字數 2299 閱讀 7511

1.環境配置

2.1、前端頁面

簡單的寫一下前台頁面,注意一點的是form表單中別忘了寫enctype="multipart/form-data"屬性:

商品

2.2、對多部件型別multipart簡析

意思就是說針對上面的enctype="multipart/form-data"型別,springmvc需要對multipart型別的資料進行解析,在springmvc.xml

中配置multipart型別解析器即可。

建立的方法有兩種:一是在myeclipse中雙擊tomcat伺服器,然後彈出下面的框框:

設定好後,儲存即可,這樣上傳的檔案都會儲存到document base指定的目錄中,相當於虛擬對映到path指定的目錄中,程式中獲取這個檔案,要從path指定的虛擬目錄中獲取,即我上面的/file。 

第二種方法就是在tomcat的配置檔案中配置一下,其實剛剛在myeclipse中的操作已經自動寫到這個配置檔案中了,配置檔案位置在tomcat目錄/conf/server.xml中,看一下裡面會多了一行: 

這就是剛剛我配置的,它自動寫到這個檔案中了,所以我們也可以直接自己在檔案中寫,就不需要在myeclipse中配置了

接下來就是重點了,前台傳過來的檔案,我們在controller中需要進行處理,然後儲存到磁碟中,同時也就對映到了我們配置的虛擬路徑中了,那麼如何接收呢?看下面的**:

// 呼叫service更新商品資訊,頁面需要將商品資訊傳到此方法

itemsservice.updateitems(id, itemscustom);

return "/web-inf/jsp/success.jsp";}

首先來看一下形參,主要有itemscustom和multipartfile型別的items_pic,我這裡上傳一張是itemscustom類的乙個屬性,所以有了這個形參,是為了寫到該類中,另外前面的@validated註解是我寫springmvc校驗的時候用的,跟這裡檔案上傳無關。springmvc檔案上傳的類是multipartfile,名items_pic必須和前台的name屬性一致才行。 

上傳檔案的邏輯是,首先判斷有沒有上傳檔案,如果上傳了,那麼對檔案重新命名然後寫到磁碟中。如果沒有上傳檔案,那麼我應該還是用原來的檔案(),因為我寫的這個例子是更新商品資訊,對檔案上傳那裡沒有做非空驗證,所以在這裡寫了else。 

這樣檔案就上傳完了,這是單個檔案的上傳。

多個檔案上傳和單個檔案上傳原理一樣的,不過在細節上會有點不同,待我乙個個總結。首先在前台頁面上要注意的一點是name屬性必須一樣,即:

然後就是後台接收的形參也要變,如下:

} 如上,形參變成陣列型別了,且前面要加上@requestparam註解才行。然後獲取的話,就是遍歷這個陣列,迴圈內部與上面的單個檔案上傳就一模一樣了。看一下列印結果: 

SpringMVC 實現檔案上傳

springmvc實現檔案上傳很簡單,spring本身的使用也非常簡單,要使用spring的某些功能,只需要在spring 的配置檔案宣告對應的功能的bean即可,如題,我們這裡要用到的檔案上傳的bean是multipartresolver。第一步 加入到配置檔案 其中maxuploadsize 5...

springMVC實現上傳檔案

http上載是基於 rfc 1867 標準,spring mvc 利用apache commons fileupload 元件支援了這個標準,這樣利用spring mvc提供的api可以輕鬆的獲得上載檔案 實現步驟 1.配置jar包依賴 會和原先的jar包有隱式的依賴衝突,刪掉原先不必要的jar包就...

springmvc實現檔案上傳

一 客戶端程式設計 由於多數檔案上傳都是通過表單形式提交給後台伺服器的,因此,要實現檔案上傳功能,就需要提供乙個檔案上傳的表單。同時該表單必須滿足以下3個條件 form表單的method屬性設定為post form表單的enctype屬性設定為multipart form data 提供的檔案上傳輸...