前端頁面:
注意要設定表單enctype屬性:
enctype=「multipart/form-data」
(將資料以多段的形式傳送)。
enctype : 屬性規定在傳送到伺服器之前應該如何對表單資料進行編碼。
multipart/form-data : 不對字元編碼。在使用包含檔案上傳控制項的表單時,必須使用該值。
action
="user/fileupload"
method
="post"
enctype
="multipart/form-data"
>
選擇檔案:type
="file"
name
="upload"
/>
/>
type
="submit"
value
="上傳檔案"
/>
form
>
後端處理:
獲取目標存放目錄,不存在則建立
獲取servlet上傳檔案工具
解析request域,獲取list < fileitem > 物件
每個fileitem存著表單每一項的具體資訊
fileitem通過流的形式寫出,並釋放
/**
* 檔案上傳
// 建立磁碟檔案項工廠
diskfileitemfactory factory =
newdiskfileitemfactory()
; servletfileupload fileupload =
newservletfileupload
(factory)
;// 解析request物件
list
list = fileupload.
parserequest
(request)
;// 遍歷
for(fileitem fileitem : list)
else
}return
"success"
;}
springmvc直接將request物件解析這一步驟通過前端控制器呼叫檔案解析器幫我們做了,直接傳遞了乙個multipartfile物件給我們,multipartfile封裝著檔案內容。
1. 檔案解析器,id名稱必須是multipartresolver
"multipartresolver"
class
="org.springframework.web.multipart.commons.commonsmultipartresolver"
>
name
="maxuploadsize"
value
="10485760"
/>
bean
>
2. 前端也同樣需要設定表單enctype屬性:
enctype=「multipart/form-data」
action
="upload"
method
="post"
enctype
="multipart/form-data"
>
name
="name"
value
="eddie"
>
/>
選擇檔案:type
="file"
name
="upload"
>
/>
type
="submit"
>
form
>
3. 後端:/**
* springmvc方式的檔案上傳
// 獲取到上傳檔案的名稱
string filename = upload.
getoriginalfilename()
; string uuid = uuid.
randomuuid()
.tostring()
.replaceall
("-",""
).touppercase()
;// 把檔案的名稱唯一化
filename = uuid+
"_"+filename;
// 上傳檔案
upload.
transferto
(new
file
(file,filename));
return
"success"
;}
跨伺服器需要的jar包
>
>
com.sun.jerseygroupid
>
>
jersey-coreartifactid
>
>
version
>
dependency
>
>
>
com.sun.jerseygroupid
>
>
jersey-clientartifactid
>
>
version
>
dependency
>
步驟:
把path目錄設定為儲存伺服器的檔案目錄
// 定義伺服器的請求路徑
;
通過webresource和client上傳檔案
// 建立客戶端物件
client client = client.
create()
;// 連線伺服器
webresource webresource = client.
resource
(path+filename)
;// 上傳檔案
webresource.
put(upload.
getbytes()
);
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...
spring mvc 檔案上傳
在檔案上傳時,我們需要用到檔案上傳解析器,其實,它並不陌生,只是對httpservletrequest的乙個擴充套件,使其能夠更好的處理檔案上傳,擴充套件的介面名為 org.springframework.web.multipart.multiparthttpservletrequest 先用乙個類...
Springmvc 上傳檔案
springmvc為檔案上傳提供了直接支援,通過multipartresolver實現。預設沒有裝配multipartresolver,需要先在上下文中配置multipartresolver。1 需要的jar包 commons iogroupid commons ioartifactid 2.4ve...