layUI框架上传文件MultipartFile参数null解决办法

最近在用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框架,不知道具体如何传的值,以后就好了。

原文地址:https://www.cnblogs.com/mxxbc/p/14039026.html