我是靠谱客的博主 优美小鸭子,最近开发中收集的这篇文章主要介绍SpringMVC中包含MultipartFile参数的方法如果不上传文件报错的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

做项目时遇到的一个小问题,在此做个记录。controller的接口中有multipartFile类型的参数,这样在接收参数时可以直接操作文件。但是如果调用此方法时并未上传文件,springmvc在接收数据时,就会抛出异常:

org.springframework.web.multipart.MultipartException:
The current request is not a multipart request

为了能灵活处理请求,做到是否上传了文件都能请求方法,在参数中将multipartFile类型参数换成HttpServletRequest 参数,判断request是否是multipart请求,如果是,再从请求中获取文件,方法如下:

MultipartFile file = null;
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart){
MultipartHttpServletRequest multipartRequest =
WebUtils.getNativeRequest(request,MultipartHttpServletRequest.class);
file = multipartRequest.getFile("file");
}

上面的方法是在单文件上传,文件类型数据的“key值”为“file”时的接收,这里的“file”可以改为其他键值。如果是多文件上传,我们可以使用如下方法接收:


// 获取文件map集合
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
// 循环遍历,取出单个文件
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取单个文件
MultipartFile mf = entity.getValue();
// 获得原始文件名
String fileName = mf.getOriginalFilename();
System.out.println(fileName);
}

其实是multipartRequest.getFile(“file”)这个获取单文件方法改成了multipartRequest.getFileMap()获取map集合,然后遍历集合,处理文件数据;

最后

以上就是优美小鸭子为你收集整理的SpringMVC中包含MultipartFile参数的方法如果不上传文件报错的问题的全部内容,希望文章能够帮你解决SpringMVC中包含MultipartFile参数的方法如果不上传文件报错的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部