带有Ajax文件上传和MultipartFile的Spring MVC
我在Spring 3 MVC中使用Ajax上传时遇到问题。我知道我必须在spring config中配置multipartResolver
bean。比我可以拥有这样的控制器
@RequestMapping(value ="/settingsSim")@ResponseBody
public Map uploadSimSettings(@RequestParam(value="qqfile", required=true) MultipartFile settings) {
Map<String, Object> ret = new HashMap<String, Object>();
return ret;
}
问题是,当我实际将请求发送到服务器时(实际上是valums
Ajax文件上传为我完成了此操作),我收到内部服务器错误响应,并且日志中未显示任何内容。我现在真的挠头,因为我无法弄清楚问题所在。
回答:
使用valums插件时,我通过使用@RequestBody
Spring注释解决了此问题。您可以按以下方式重写代码:
@RequestMapping(value ="/settingsSim",method=RequestMethod.POST)@ResponseBody
public Map uploadSimSettings(@RequestBody String body) {
/*
some controller logic
*/
}
请注意,该变量body
将包含上载文件的内容。此外,您的示例中没有方法声明,这意味着您的方法将映射到GET请求。
PS我在使用Apache
Commons解析请求时也遇到了“无多部分边界”的问题。HttpServletRequest#getParts()
仅返回一个空集合。
以上是 带有Ajax文件上传和MultipartFile的Spring MVC 的全部内容, 来源链接: utcz.com/qa/421545.html