后台:
@RequestMapping(method = RequestMethod.POST,params="picture")
public @ResponseBody String updateLoad(@RequestParam(value = "file") MultipartFile file) {
String filePath = request.getSession().getServletContext().getRealPath("/") + java.io.File.separator + AppConstants.PICTURE_PLACE;
String name = FileUtil.saveFile(file, filePath);
return name;
}
前台:
<form id="imageUploadForm" action='coupon?picture' method="post" enctype='multipart/form-data'>
<input type="file" name="file" class="default" />
<input type="submit" value="upload" />
</form>
报错:Required MultipartFile parameter 'file' is not present,怎么改能不报错,并且传过来的file 不为null
你表单的action后面的问号什么意思啊
把
public @ResponseBody String updateLoad(@RequestParam(value = "file") MultipartFile file)
改为
public @ResponseBody String updateLoad(@RequestParam MultipartFile file)
MultipartFile 需要转为File类型的啊,给段代码你参考哈
@Controller
public class UploadAction {
@RequestMapping(value = "/upload.do")
public String upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, ModelMap model) {
System.out.println("开始");
String path = request.getSession().getServletContext().getRealPath("upload");
String fileName = file.getOriginalFilename();
// String fileName = new Date().getTime()+".jpg";
System.out.println(path);
File targetFile = new File(path, fileName);
if(!targetFile.exists()){
targetFile.mkdirs();
}
//保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
model.addAttribute("fileUrl", request.getContextPath()+"/upload/"+fileName);
return "result";
}
}