icc*_*bot 5 java spring http spring-mvc
我有一个用于上传文件的SpringMVC Web服务,如下所示:
@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload(MultipartHttpServletRequest request) {
// upload the file
}
Run Code Online (Sandbox Code Playgroud)
一切都很花花公子.但是如果其中一个消费者发布了非多部分表单,那么我会得到这个例外
java.lang.IllegalStateException: Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]
Run Code Online (Sandbox Code Playgroud)
这是有道理的..但是我不希望我的最终用户看到500个servlet异常.我想要一个友好的错误消息.
我刚试过这个(就像其他POST一样):
@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload2(){
// return friendly msg
}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path '/upload.json'
Run Code Online (Sandbox Code Playgroud)
有没有办法安全地处理多部分和非多部分POST请求?在一种方法,或2种不同的方法,我不在乎.
mat*_*t b 14
检查请求是否是自己的多部分:
@RequestMapping(value="/upload.json", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> upload(HttpServletRequest request) {
if (request instanceof MultipartHttpServletRequest) {
// process the uploaded file
}
else {
// other logic
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9662 次 |
| 最近记录: |