springboot多文件上傳代碼實例及解析
這篇文章主要介紹了springboot多文件上傳代碼實例及解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
一說明
spingMVC支持文件上傳,我們通過Apach 的 commons-fileupload 包的CommonsMultipartResolver 去實現(xiàn)了
spingMVC的MultipartResolver 。
本文章的示例是個簡單的多文件上傳,根據(jù)不同的業(yè)務(wù)自行修改。
二pom.xlm
<dependencies>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
三 application.yml
spring: servlet: multipart: max-file-size: 200MB #單個文件上傳大小 max-request-size: 600MB #連續(xù)上傳文件大小 youku1327: file: root: path: "C:\\mydata\\generator\\version06\\" #存儲路徑
四controller
/**
* @Author lsc
* @Description <p> </p>
* @Date 2019/10/2 20:58
* @Version 1.0
*/
@RestController
public class FileUploadController {
@Value("${youku1327.file.root.path}")
private String fileRootPath;
@PostMapping("/file/upload")
public String fileUpload(@RequestParam("files")MultipartFile[] files){
String filePath = "";
// 多文件上傳
for (MultipartFile file : files){
// 上傳簡單文件名
String originalFilename = file.getOriginalFilename();
// 存儲路徑
filePath = new StringBuilder(fileRootPath)
.append(System.currentTimeMillis())
.append(originalFilename)
.toString();
try {
// 保存文件
file.transferTo(new File(filePath));
} catch (IOException e) {
e.printStackTrace();
}
}
return filePath;
}
}
五啟動類
/**
* @Author lsc
* @Description <p> </p>
* @Date 2019/10/2 20:54
* @Version 1.0
*/
@SpringBootApplication
public class FileUploadApplication {
public static void main(String[] args) {
SpringApplication.run(FileUploadApplication.class,args);
}
}
六測試
發(fā)送http的post請求,使用表單形式,key為files需要與MultipartFile[] 的參數(shù)名稱一致,挑選兩個文件,發(fā)送成功后,會看到最后返回的文件路徑;

打開保存的文件路徑可以發(fā)現(xiàn)已經(jīng)實現(xiàn)文件上傳。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java如何使用Agent和ASM在字節(jié)碼層面實現(xiàn)方法攔截
Agent是一種運行在 Java 虛擬機 (JVM) 上的特殊程序,ASM是一個輕量級的 Java 字節(jié)碼編輯和分析框架,本文為大家介紹了如何利用他們在字節(jié)碼層面實現(xiàn)方法攔截,感興趣的可以了解一下2023-05-05
SpringSecurity+jwt+redis基于數(shù)據(jù)庫登錄認(rèn)證的實現(xiàn)
本文主要介紹了SpringSecurity+jwt+redis基于數(shù)據(jù)庫登錄認(rèn)證的實現(xiàn),其中也涉及到自定義的過濾器和處理器,具有一定的參考價值,感興趣的可以了解一下2023-09-09
Springboot中useGeneratedKeys用法小結(jié)
本文主要介紹了Springboot中useGeneratedKeys用法小結(jié),useGeneratedKeys?是 MyBatis 框架中的一個參數(shù),用于指定是否允許 JDBC 支持自動生成主鍵,感興趣的可以了解一下2024-09-09
Java中動態(tài)規(guī)則的實現(xiàn)方式示例詳解
這篇文章主要介紹了Java中動態(tài)規(guī)則的實現(xiàn)方式,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08

