SpringMVC文件上傳原理及實(shí)現(xiàn)過(guò)程解析
一、文件上傳的必要前提
- A form 表單的 enctype 取值必須是:multipart/form-data(默認(rèn)值是:application/x-www-form-urlencoded) enctype:是表單請(qǐng)求正文的類(lèi)型
- B method 屬性取值必須是 Post
- C 提供一個(gè)文件選擇域 input type=file
二、借助第三方組件實(shí)現(xiàn)文件上傳

三、
/**
* springmvc跨服務(wù)器上傳文件
* @return
*/
@RequestMapping("/testFileUpload1")
public String testFileUpload1(MultipartFile upload) throws IOException {
System.out.println("跨服務(wù)器文件上傳...");
// 定義上傳文件服務(wù)器路徑
String path = "http://localhost:9090/uploads/";
// 說(shuō)明上傳文件項(xiàng)
// 獲取上傳文件的名稱(chēng)
String filename = upload.getOriginalFilename();
// 把文件的名稱(chēng)設(shè)置唯一值,uuid
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid+"_"+filename;
// 創(chuàng)建客戶(hù)端的對(duì)象
Client client = Client.create();
// 和圖片服務(wù)器進(jìn)行連接
WebResource webResource = client.resource(path + filename);
// 上傳文件
webResource.put(upload.getBytes());
return "success";
}
/**
*
* 這里的upload必須與index.jsp的upload一致
*
* springmvc文件上傳
* @return
*/
@RequestMapping("/testFileUpload")
public String testFileUpload(HttpServletRequest request, MultipartFile upload) throws IOException {
// 使用fileupload組件完成文件上傳
// 上傳的位置(獲取上傳到服務(wù)器上的文件路徑)
String path = request.getSession().getServletContext().getRealPath("/uploads/");
// 判斷,該路徑是否存在
File file = new File(path);
if(!file.exists()){
file.mkdir();
}
// 說(shuō)明上傳文件項(xiàng)
// 獲取上傳文件的名稱(chēng)
String filename = upload.getOriginalFilename();
// 把文件的名稱(chēng)設(shè)置唯一值,uuid
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid+"_"+filename;
// 完成文件上傳
upload.transferTo(new File(path,filename));
return "success";
}
四、在springmvc.xml配置文件解析器

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳
- ssm框架Springmvc文件上傳實(shí)現(xiàn)代碼詳解
- Ajax實(shí)現(xiàn)文件上傳功能(Spring MVC)
- SpringMVC 上傳文件 MultipartFile 轉(zhuǎn)為 File的方法
- SpringMVC上傳文件并保存到本地代碼實(shí)例
- SpringMVC實(shí)現(xiàn)多文件上傳
- SpringMVC 單文件,多文件上傳實(shí)現(xiàn)詳解
- 利用SpringMVC和Ajax實(shí)現(xiàn)文件上傳功能
- Springmvc文件上傳實(shí)現(xiàn)流程解析
相關(guān)文章
Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter)
本文主要介紹了Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter),就像文章標(biāo)題所說(shuō)的,SpringSecurity已經(jīng)廢棄了繼承WebSecurityConfigurerAdapter的配置方式,下面就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下2023-12-12
RabbitMq報(bào)錯(cuò)reply-code=406 reply-text=PRECONDITION_FAILED
這篇文章主要為大家介紹了RabbitMq報(bào)錯(cuò)reply-code=406 reply-text=PRECONDITION_FAILED分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Java Feign微服務(wù)接口調(diào)用方法詳細(xì)講解
現(xiàn)如今微服務(wù)架構(gòu)十分流行,而采用微服務(wù)構(gòu)建系統(tǒng)也會(huì)帶來(lái)更清晰的業(yè)務(wù)劃分和可擴(kuò)展性。java如果使用微服務(wù)就離不開(kāi)springcloud,我這里是把服務(wù)注冊(cè)到nacos上,各個(gè)服務(wù)之間的調(diào)用使用feign2023-01-01
java 正則表達(dá)式獲取兩個(gè)字符中間的字符串方法
今天小編就為大家分享一篇java 正則表達(dá)式獲取兩個(gè)字符中間的字符串方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
java 數(shù)據(jù)庫(kù)連接與增刪改查操作實(shí)例詳解
這篇文章主要介紹了java 數(shù)據(jù)庫(kù)連接與增刪改查操作,結(jié)合實(shí)例形式詳細(xì)分析了java使用jdbc進(jìn)行數(shù)據(jù)庫(kù)連接及增刪改查等相關(guān)操作實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2019-11-11
idea項(xiàng)目報(bào)錯(cuò)缺失maven依賴(lài)問(wèn)題及解決
這篇文章主要介紹了idea項(xiàng)目報(bào)錯(cuò)缺失maven依賴(lài)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03

