SpringMVC上传文件错误

最近在用SpringMVC练习上传文件的时候,点击表单中的提交按钮,总显示未选择文件,上传失败
原代码段
@RequestMapping("/add")
public String add(@Validated User user,BindingResult br,Model model,HttpServletRequest req,MultipartFile headimg,String name){
if(br.hasErrors()){
return "add";
}
String path = req.getRealPath("/resources");
System.out.println(path);
File file = new File(path+"/"+headimg.getOriginalFilename());
try {
FileUtils.copyInputStreamToFile(headimg.getInputStream(), file);
} catch (IOException e) {
e.printStackTrace();
}
user.setHeadimg("/resources/"+headimg.getOriginalFilename());
map.put(name, user);
model.addAttribute("users", map);
return "showUser";
}

改了很久发现不了问题,最后发现问题出现在标红那里,将错误信息打印出来是
Field error in object 'user' on field 'headimg': rejected value [[email protected]8699755]; codes [typeMismatch.user.headimg,typeMismatch.headimg,typeMismatch.java.lang.String,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.headimg,headimg]; arguments []; default message [headimg]]; default message [Failed to convert property value of type 'org.springframework.web.multipart.commons.CommonsMultipartFile' to required type 'java.lang.String' for property 'headimg'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.springframework.web.multipart.commons.CommonsMultipartFile] to required type [java.lang.String] for property 'headimg': no matching editors or conversion strategy found]

大致意思就是匹配不到的意思
MultipartFile headimg前面加上@RequestParam(value="headimg", required=false)
这里的value和前台表单中的name一定要一致,问题就解决了

本博客所有文章如无特别注明均为原创。作者:张辰复制或转载请以超链接形式注明转自 张大叔博客
原文地址《SpringMVC上传文件错误
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)