概述
做项目时遇到的一个小问题,在此做个记录。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参数的方法如果不上传文件报错的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复