我正在使用弹簧,弹簧安全,冬眠。有一个jsp页面,我试图上传文件,后端我有一个控制器来捕获和存储上传的文件。我正在使用tomcat。我使用spring security进行登录验证。上传文件时出现以下错误 HTTP状态405 - 不支持请求方法“POST” 有什么想法吗?
答案 0 :(得分:4)
您需要确保您的请求处理程序能够接受POST。您还可以将Spring配置为使用MultipartResolver来帮助您获取请求部件。
配置MultiPartResolver
@Bean(name = "mulitpartResolver")
public MultipartResolver multipartResolver() {
if (multipartResolver == null) {
multipartResolver = new CommonsMultipartResolver();
}
return multipartResolver;
}
这是请求映射:
@RequestMapping(method = RequestMethod.POST, value = "/some/post/url")
public void postFile(MultipartHttpServletRequest request) {
MultipartFile multipartFile = request.getFileMap().get("keyForFileInFormPost");
...
}
请注意,有时这不适用于Spring Security。你可以在这里查看我的博客文章,使用带弹簧安全性的multipartrequestresolvers寻求帮助:
http://www.adamweigold.com/2012/01/using-multpartrequestresolvers-with.html
答案 1 :(得分:0)
在Spring Context中定义bean“multipartResolver”
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="2097152"/>
</bean>
并使用
@ResponseBody
@RequestMapping(value = "/{tenantId}/getEntityInfo", method = RequestMethod.POST)
public ResponseEntity<String> getEntityInfo(
@RequestParam(value = "xml", required = false) MultipartFile xml) {
}