springboot中单文件上传和多文件上传
2019-10-26 本文已影响0人
very_cute_girls
一.引入web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
二.在application.properties设置文件上传大小的设置
# 上传文件总的最大值
spring.servlet.multipart.max-request-size=20MB
# 单个文件的最大值
spring.servlet.multipart.max-file-size=10MB
三.单文件上传
1.前端代码
<form action="/uploading" method="post" enctype="multipart/form-data">
<p>
选择文件:<input type="file" name="file">
</p>
<p>
<input type="submit" value="上传">
</p>
</form>
注意: method="post" enctype="multipart/form-data"
2.Controller代码实现
private String name=null;
/**
* 单文件上传
* @param file
* @return
*/
@PostMapping("/uploading")
public String HandleFormUpload(MultipartFile file){
//判断是否为空
if(!file.isEmpty()){
//获取文件名称,主要是获取文件的"扩展名"
name=file.getOriginalFilename();
System.out.println("name:"+name);
//随机生成不重复的名称+文件扩展名
UUID uuid = UUID.randomUUID();
System.out.println("name:"+uuid+name);
//确定最终保存的名称
String pathFile=uuid+name;
File file1 = new File("G://file/"+pathFile);
try{
//保存文件
file.transferTo(file1);
}catch (Exception e){
System.out.println(e);
}
System.out.println("上传文件的名为:"+pathFile);
}else{
System.out.println("上传内容为空");
}
return "uploadfiles";
}
四.多文件上传
1.前端代码 ( 多文件上传对比单文件上传多了几个文件框)
<form action="/uploadFiles" method="post" enctype="multipart/form-data">
<p>
选择文件:<input type="file" name="file">
</p>
<p>
选择文件:<input type="file" name="file">
</p>
<p>
选择文件:<input type="file" name="file">
</p>
<p>
选择文件:<input type="file" name="file">
</p>
<p>
<input type="submit" value="上传">
</p>
</form>
2.Controller代码实现
//MultipartFile[] 因为接受的不只一个,所以这里用数组接收
@PostMapping("uploadFiles")
public String HandleFormUploads(MultipartFile[] file){
for (int i = 0; i < file.length; ++i) {
if(!file[i].isEmpty()){
try {
name=file[i].getOriginalFilename();
UUID uuid = UUID.randomUUID();
System.out.println("name:"+uuid+name);
String pathFile=uuid+name;
File file1 = new File("G://file/"+pathFile);
file[i].transferTo(file1);
}catch (Exception e){
System.out.println(e);
}
}else{
System.out.println("为空");
}
}
//返回视图
return "uploadfiles";
}