MultipartFile每次都返回null

我正在使用此代码将图像文件发布到我的控制器,但我总是得到文件正文部分的空值。

@RequestMapping(value = "/updateprofile", method = RequestMethod.POST) public @ResponseBody ResponseMsg updateProfile( @RequestHeader(value = "userid", required = false) String userid, @RequestHeader(value = "name", required = false) String name, @RequestHeader(value = "phone", required = false) int phone, @RequestParam(value = "file", required = false) MultipartFile file) { ResponseMsg responseMsg = CommonUtils.checkParam(userid, name, phone, file); if (responseMsg.getStatus().equalsIgnoreCase("True")) responseMsg = userService.login(name, userid); return responseMsg; } 

有人能帮忙吗?

当您使用multipart您的表单字段将包含在request Stream 。 所以你必须检查它们是否是form fields

这是我在servlet中使用的,您可以对其进行适当的更改以在Spring-MVC

 boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { try { List items = upload.parseRequest(request); Iterator iterator = items.iterator(); while (iterator.hasNext()) { FileItem item = (FileItem) iterator.next(); if (item.isFormField()) //your code for getting form fields { String name = item.getFieldName(); String value = item.getString(); System.out.println(name+value); } if (!item.isFormField()) { //your code for getting multipart } } } 

首先请发布更多代码然后我们可以找到更多,其次我认为问题是你的forms。 如果您使用Spring mvc上传文件,您的表单应如下所示:

注意enctype ,它让Spring DispatchServlet知道你想上传一个文件。 你也应该检查配置文件中是否配置了MutilPartFileResovler

对于那些仍在努力解决这个问题的人来说,这对我有用。 以前我的input字段定义为,

  

我正在使用上面的行获取null文件但是当我添加name="file"一切正常!

  

希望这可以帮助!