最近在用layUI框架做一个小项目,上传文件时MultipartFile参数输出为null,下面是我的解决办法:
首先是我后端的java代码:
@RequestMapping("/upload") public String fileuoload2(HttpServletRequest request, MultipartFile file) throws Exception {}
当使用layui框架的向后台传数据的时候,出现了错误提示:
标记文HTTP500: 服务器错误 - 服务器遇到了阻止它完成请求的意外状况。
(XHR)POST - http://localhost:8080/upload
由此可知链接没问题,是服务器端出现了异常,然后首先考虑是不是传递的值有问题:
@RequestMapping("/upload") public String fileuoload2(HttpServletRequest request, MultipartFile file) throws Exception { System.out.println(file); }
结果输出的file的值为null
我前端的js代码:
var uploadInst = upload.render({ elem: '#test1' ,url: '/upload' ,accept:'images' ,acceptMime:'image/*' ,field:'mf' //表单的name值 ,before: function(obj){ } ,done: function(res){ alert(res); //如果上传失败 if(res.code > 0){ return layer.msg('上传失败'); } //上传成功 layer.msg("上传成功"); } ,error: function(){ }); }
花了好长时间,才得知js的field的值应该与MultipartFile 的参数一致。把file改为mf,或者把mf改为file,就能成功运行了。
,field:'mf' //表单的name值 public String fileuoload2(HttpServletRequest request, MultipartFile file) throws Exception {}
这个小问题花了我好长时间,主要是以前没怎么使用过layui框架,不知道具体如何传的值,以后就好了。