springBoot使用MultipartFile实现多文件 上传
下面是用springboot实现的一个简单文件上传例子1.文件上传是使用@RequestPart注解,和MultipartFile类来接受,MultipartFile类中有很多属性供我们使用。话不多说先创建一个Controller/*** @Author zxm* @Date 2022/01/07 10:24*/@Controller@RequestMapping("/count")public
·
下面是用springboot实现的一个简单文件上传例子
1.文件上传是使用@RequestPart注解,和MultipartFile类来接受,MultipartFile类中有很多属性供我们使用。话不多说先创建一个Controller
/**
* @Author zxm
* @Date 2022/01/07 10:24
*/
@Controller
@RequestMapping("/count")
public class ContextController {
/*上传文件的接口*/
@PostMapping("/uplode")
@ResponseBody
public String getUplode(@RequestPart("one") MultipartFile mf,
@RequestPart("any") MultipartFile[] mfs) throws IOException {
System.out.println("单文件上传信息为:"+mf.getOriginalFilename());
System.out.println("多文件个数:"+mfs.length);
for (MultipartFile m:mfs){
System.out.println("多文件信息:文件名称:"+m.getOriginalFilename()+",文件大小:"+m.getSize()/1000+"kb");
}
/*将文件上传到指定文件夹*/
if (!mf.isEmpty()){
String fileName=mf.getOriginalFilename();
//文件上传
mf.transferTo(new File("E:\\"+fileName));
}
if (mfs.length>0){
for (MultipartFile m: mfs) {
m.transferTo(new File("E:\\"+m.getOriginalFilename()));
}
}
return "成功";
}
}
2.然后创建一个前端代码测试,如果需要多文件的话,给input标签添加multiple属性就表示这是个多文件的input。然后在from里面加enctype=“multipart/form-data” 表示这个请求有多文件请求。
<!--
多文件请求:enctype="multipart/form-data"
多文件:multiple
-->
<form action="/count/uplode" method="post" enctype="multipart/form-data" >
<input type="file" value="上传单个文件" name="one" ><p>
<input type="file" value="上传多个文件" name="any" multiple><p>
<input type="submit" value="提交" >
</form>
在这里基本上就可以上传文件了,但是相信有很多同学在这会一直报错,这是因为上传的文件太大或者文件太多导致的,遇到这样的请款只需要到配置文件里面加入相应的配置即可。文件上传的源代码如下:
可以看到要先配置文件上传只需要配置 spring.servlet.multipart 就行了,所有的配置参数都在MultipartProperties类里面。里面的参数有很多,这里就不一一介绍简介,主要介绍两个常用的参数。
3.配置文件
spring:
servlet:
multipart:
max-file-size: 10MB #单个文件最大大小
max-request-size: 100MB #文件最多上传的大小
这样配置后就可以上传成功啦。咋们看一下结果
可以看到我们已将把文件选好了,然后点击提交按钮,后台已将显示出来了,表示上传成功。
更多推荐
已为社区贡献2条内容
所有评论(0)