我的springboot学习之实现多个文件的上传
程序员文章站
2022-05-30 20:33:35
...
因为昨天学了单文件上传,小可爱就心想了一个事儿,
万一我以后有多个文件上传,怎么办呢?
于是,今天又去学了多文件上传...
这次呢,在上次的单文件上传,我找到了灵感~
多个文件上传肯定是得有界面给用户上传的,至于界面就是加多一个form表单的事情,
至于后台怎么实现,宝宝想到了一个方法,
提取上传文件方法为公共方法,再添加一个上传文件集合,将上传的文件收集起来,
然后,你懂的,哈哈哈...
第一步:修改index.jsp
页面肯定得有多个文件上传的样子,不然用户怎么选择多个文件?
在index.jsp再添加多一个表单,标注为多文件上传使用的~
多个文件上传:
<form action="/uploads" method="post" enctype="multipart/form-data">
文件1:<input type="file" name="file"/><br/>
文件2:<input type="file" name="file"/><br/>
文件3:<input type="file" name="file"/><br/>
<input type="submit" value="上传多个文件"/>
</form>
第二步:提取上传方法为公共方法
/**
* 提取上传方法为公共方法
* @param uploadDir 上传文件目录
* @param file 上传对象
* @throws Exception
*/
private void executeUpload(String uploadDir,MultipartFile file) throws Exception
{
//文件后缀名
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
//上传文件名
String filename = UUID.randomUUID() + suffix;
//服务器端保存的文件对象
File serverFile = new File(uploadDir + filename);
//将上传的文件写入到服务器端文件内
file.transferTo(serverFile);
}
第三步:在UploadController控制器添加/uploads方法
/**
* 上传多个文件
* @param request 请求对象
* @param file 上传文件集合
* @return
*/
@RequestMapping(value = "/uploads",method = RequestMethod.POST)
public @ResponseBody String uploads(HttpServletRequest request,MultipartFile[] file)
{
try {
//上传目录地址
String uploadDir = request.getSession().getServletContext().getRealPath("/") +"upload/";
//如果目录不存在,自动创建文件夹
File dir = new File(uploadDir);
if(!dir.exists())
{
dir.mkdir();
}
//遍历文件数组执行上传
for (int i =0;i<file.length;i++) {
if(file[i] != null) {
//调用上传方法
executeUpload(uploadDir, file[i]);
}
}
}catch (Exception e)
{
//打印错误堆栈信息
e.printStackTrace();
return "上传失败";
}
return "上传成功";
}
第四步:测试方法是否实现
成功了,看到没,我的小可爱们~
是不是很棒棒哦,我的小可爱们~
如果我们上传一个大文件,如何修改SpringBoot的最大上传限制呢?
打开application.properties配置文件,
加入spring.http.multipart.max-file-size以及spring.http.multipart.max-request-size配置信息
spring.http.multipart.max-file-size=1024Mb
spring.http.multipart.max-request-size=2048Mb
是不是很简单呢,小可爱快来试试吧~
上一篇: 公众号自定义菜单开发
下一篇: 微信公众号开发(五)创建自定义菜单
推荐阅读
-
hadoop入门之通过java代码实现将本地文件上传到hadoop的文件系统
-
Servlet3.0学习总结之基于Servlet3.0的文件上传实例
-
SpringBoot 文件上传和下载的实现源码
-
详解SpringBoot下文件上传与下载的实现
-
python实现requests发送/上传多个文件的示例
-
hadoop入门之通过java代码实现将本地文件上传到hadoop的文件系统
-
PHP实现单文件、多个单文件、多文件上传函数的封装示例
-
SpringBoot 文件上传和下载的实现源码
-
Servlet3.0学习总结之基于Servlet3.0的文件上传实例
-
SpringBoot实现本地存储文件上传及提供HTTP访问服务的方法