SpringMVC文件上傳原理及實現(xiàn)過程解析
更新時間:2020年07月15日 08:58:27 作者:jock_javaEE
這篇文章主要介紹了SpringMVC文件上傳原理及實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
一、文件上傳的必要前提
- A form 表單的 enctype 取值必須是:multipart/form-data(默認(rèn)值是:application/x-www-form-urlencoded) enctype:是表單請求正文的類型
- B method 屬性取值必須是 Post
- C 提供一個文件選擇域 input type=file
二、借助第三方組件實現(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/";
// 說明上傳文件項
// 獲取上傳文件的名稱
String filename = upload.getOriginalFilename();
// 把文件的名稱設(shè)置唯一值,uuid
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid+"_"+filename;
// 創(chuàng)建客戶端的對象
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();
}
// 說明上傳文件項
// 獲取上傳文件的名稱
String filename = upload.getOriginalFilename();
// 把文件的名稱設(shè)置唯一值,uuid
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid+"_"+filename;
// 完成文件上傳
upload.transferTo(new File(path,filename));
return "success";
}
四、在springmvc.xml配置文件解析器

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter)
本文主要介紹了Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter),就像文章標(biāo)題所說的,SpringSecurity已經(jīng)廢棄了繼承WebSecurityConfigurerAdapter的配置方式,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下2023-12-12
RabbitMq報錯reply-code=406 reply-text=PRECONDITION_FAILED
這篇文章主要為大家介紹了RabbitMq報錯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)也會帶來更清晰的業(yè)務(wù)劃分和可擴展性。java如果使用微服務(wù)就離不開springcloud,我這里是把服務(wù)注冊到nacos上,各個服務(wù)之間的調(diào)用使用feign2023-01-01
java 數(shù)據(jù)庫連接與增刪改查操作實例詳解
這篇文章主要介紹了java 數(shù)據(jù)庫連接與增刪改查操作,結(jié)合實例形式詳細(xì)分析了java使用jdbc進(jìn)行數(shù)據(jù)庫連接及增刪改查等相關(guān)操作實現(xiàn)技巧與注意事項,需要的朋友可以參考下2019-11-11

