【问题标题】:MissingServletRequestParameterExceptionMissingServletRequestParameterException
【发布时间】:2018-01-22 19:14:48
【问题描述】:

我正在将一个 formData 对象传递给我的 Spring 后端:

imageBanner(banner: File, bannerPath: string, id: number, callback: (response) => void){
    var formData = new FormData();
    formData.append('name', banner.name);
    console.log(formData.get('name'));
    formData.append('file', banner);
    console.log(formData.get('file'));

    this.sendPost("/upload/" + bannerPath, formData, response => {
        callback(response);
    });

}

控制台日志显示:

1.jpg 
File {name: "1.jpg", lastModified: 1496737372408, lastModifiedDate: Tue Jun 06 2017 10:22:52 GMT+0200 (W. Europe Daylight Time), webkitRelativePath: "", size: 38983…}

所以看起来 formData 有一些值。

在后端我有这个:

@RequestMapping(value="/rest/upload/localeventbanner", method=RequestMethod.POST, headers = "content-type!=multipart/form-data")
    public @ResponseBody String uploadFileHandler(@RequestParam("name") String name, @RequestParam("file") MultipartFile file) {

    if (!file.isEmpty()) {
        try {
            log("success");

            return "You successfully uploaded file=" + name;
        } catch (Exception e) {
            log("fail");
            return "You failed to upload";
        }
    } else {
        log("nope");
        return "You failed to upload " + name
                + " because the file was empty.";
    }
}

我在控制台中得到的回报是:

"{"timestamp":1502745177167,"status":400,"error":"Bad Request","exception":"org.springframework.web.bind.MissingServletRequestParameterException","message":"必需的字符串参数'name' 不存在","path":"/beheerback/rest/upload/localeventbanner"}"

它说名称不存在,但是当我在前端记录它时,它显示名称存在于 formData 对象中。

【问题讨论】:

    标签: spring angular


    【解决方案1】:

    尝试为名称和文件提供 required = false ,例如:

    @RequestParam(value = "name", required = false, defaultValue = "defaultName") String name, @RequestParam(value = "file" , required = false, defaultValue = "defaultFile") MultipartFile file
    

    然后检查您真正得到的值。此外,请在浏览器的开发模式下检查使用网络检查器发送的表单。

    【讨论】:

      猜你喜欢
      • 2014-08-01
      • 1970-01-01
      • 2015-06-29
      • 2016-02-17
      • 2018-05-03
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      相关资源
      最近更新 更多