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 提供的檔案上傳輸...