SpringMVC檔案上傳及傳統上傳方式

2021-10-03 08:31:57 字數 3198 閱讀 3167

上傳原理

有jsp頁面發出request請求到前端控制器,然後交由springmvc的配置檔案解析器解析request請求,拿到上傳檔案項返回upload到前端控制器,upload通過引數繫結方式交由controller中的方法。

springmvc提供了乙個multiparfile類,表示上傳檔案的那個物件,需要在方法中定義乙個這個類的物件(就指檔案上傳項)就可以完成檔案上傳。

springmvc解析工作已經做好,只需要在springmvc配置檔案中進行配置就可以拿到檔案項直接上傳。

**如下

1.jsp檔案

傳統上傳檔案<

/h1>

"user/fileupload1" method=

"post" enctype=

"multipart/form-data"

>

選擇檔案:"file" name=

"upload"

/>

>

"submit" value=

"上傳檔案"

/>

<

/form>

springmvc上傳檔案<

/h1>

"user/fileupload2" method=

"post" enctype=

"multipart/form-data"

>

選擇檔案:"file" name=

"upload"

/>

>

"submit" value=

"上傳檔案"

/>

<

/form>

<

/body>

2.controller類

/*

* 傳統檔案上傳

// 建立磁碟檔案項工廠

diskfileitemfactory factory =

newdiskfileitemfactory()

; servletfileupload fileupload =

newservletfileupload

(factory)

;// 解析request

list

items = fileupload.

parserequest

(request)

;// 遍歷

for(fileitem item:items)

else

}return

"success";}

/* * springmvc檔案上傳

// 建立磁碟檔案項工廠

diskfileitemfactory factory =

newdiskfileitemfactory()

; servletfileupload fileupload =

newservletfileupload

(factory)

;// 說明上傳檔案項

// 獲取上傳檔案的名稱

string filename = upload.

getoriginalfilename()

;//把檔案的名稱設定唯一值uuid

string uuid=uuid.

randomuuid()

.tostring()

.replace

("-",""

);filename = uuid+

"_"+filename;

// 完成檔案上傳

upload.

transferto

(new

file

(path,filename));

return

"success"

;}

3.springmvc配置檔案

<

!--開啟註解掃瞄--

>

package

="com.selan"

>

<

/context:component-scan>

<

!--視**析器--

>

"internalresourceviewresolver"

class

="org.springframework.web.servlet.view.internalresourceviewresolver"

>

"prefix" value=

"/pages/"

>

<

/property>

"suffix" value=

".jsp"

>

<

/property>

<

/bean>

<

!--前端控制器,哪些靜態資源不攔截--

>

"/js/**"

/>

<

!--配置檔案解析器--

>

"multipartresolver"

class

="org.springframework.web.multipart.commons.commonsmultipartresolver"

>

"maxuploadsize" value=

"10485760"

>

<

/property>

<

/bean>

<

!--開啟sringmvc框架註解的支援 生效型別轉換--

>

>

springmvc非同步上傳及多檔案上傳

應用場景 上傳相簿功能,上傳縮圖等,後台的功能需要改動的不多 controller public class filecontroller catch ioexception e 返回集合 return filenames 實現多檔案上傳,只需要在後台傳參時使用乙個陣列接參就好了,下面是前端的 要實...

SpringMVC 單個檔案上傳及呼叫

springmvc 在實際使用中很容易碰到檔案上傳伺服器及呼叫伺服器檔案的需求,我在開發專案的時候也碰到了這個問題。我將以 jpg 格式的為例來介紹這兩個功能的實現。1.form 標籤的設定 首先,要更該 form 標籤的屬性 重點是 enctype 與 method 需如 所示。我建議用 subm...

springmvc檔案上傳

上 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 param fname 檔名稱 含字尾 throws ioexception down...