我正在使用spring,spring security,hibernate。有一個jsp頁面,我試圖上傳一個文件,後臺我有一個控制器來捕獲並存儲上傳的文件。我正在使用tomcat。我正在使用spring security進行登錄驗證。當我上傳文件時出現以下錯誤 HTTP狀態405 - 不支持請求方法'POST' 任何想法?HTTP狀態405 - 不支持請求方法'POST'
2
A
回答
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");
...
}
注意,有時這會不會與春季安全工作。你可以看一下我的博客文章在這裏使用multipartrequestresolvers彈簧安全上求救:
http://www.adamweigold.com/2012/01/using-multpartrequestresolvers-with.html
0
只是在你的Spring上下文定義豆 「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) {
}
相關問題
- 1. Spring MVC HTTP狀態405 - 不支持請求方法'POST'
- 2. Spring MVC 3:HTTP狀態405 - 不支持請求方法'POST'
- 3. SpringMVC HTTP狀態405 - 不支持請求方法'POST'
- 4. HTTP狀態405 - 不支持請求方法'POST'。 Spring Security
- 5. HTTP狀態405 - 請求方法「POST」(不支持的Spring MVC)
- 6. 編輯時:HTTP狀態405 - 不支持請求方法'POST'
- 7. HTTP狀態405 - 不支持請求方法'POST'(僅限IE)
- 8. HTTP狀態405 - 此方法不支持HTTP方法POST - SOAP
- 9. spring-security:HTTP狀態405 - 不支持請求方法'POST'
- 10. 春:狀態405.請求方法 'POST' 不支持
- 11. HTTP狀態405 - 不支持請求方法'POST'Spring Security Java配置
- 12. 表單提交時「HTTP狀態405 - 請求方法'不支持POST'
- 13. HTTP狀態405 - 此方法不支持HTTP方法POST此網址不支持POST
- 14. WebApi Post方法總是返回「請求的資源不支持http方法'GET'。」狀態:405方法不允許
- 15. WebApi 2 Http Post 405「請求的資源不支持http方法'POST'」
- 16. Tomcat 8:HTTP狀態405 - 此方法不支持HTTP方法GET
- 17. 爲什麼顯示HTTP狀態405 - 此方法不支持HTTP方法POST?
- 18. 不支持方法'POST'405
- 19. HTTP狀態405 - 請求方法'GET'不支持錯誤$ http.post從角度調用
- 20. HTTP狀態405 - HTTP GET方法不受此URL支持
- 21. 請求方法 'POST' 不支持
- 22. 爲什麼我不能用RequestMethod.PUT總是有HTTP狀態405 - 請求方法 'POST' 不支持
- 23. 3用SpringMVC 405 - 請求方法 'POST' 不支持
- 24. 錯誤405請求方法'POST'不支持Spring Security
- 25. 春-405請求方法' POST '不支持
- 26. 錯誤405:請求方法'POST'不支持 - Spring Security Java Config
- 27. 請求方法「POST」春不支持MVC
- 28. HTTP狀態405 - 請求方法「POST」不支持,當我從春天3.0.5.RELEASE升級到春天3.1.0.M1
- 29. WCF請求失敗,HTTP狀態405:方法不允許
- 30. WARN org.springframework.web.servlet.PageNotFound - 不支持請求方法'POST'
我正在使用以下\t \t \t '@RequestM (MultipartHttpServletRequest)multipartRequest =(MultipartHttpServletRequest)request.getFileMap().get(「applet.getFileMap()」)獲取(value =「/additem/fileupload.htm」,method = RequestMethod.POST) public String upload(MultipartHttpServletRequest request,ModelMap model,Principal principal) keyForFileInFormPost「); MultipartFile multipartFile = multipartRequest.getFile(「file」);' 我還需要使用mulitpartResolver bean嗎? –
我有上面的代碼,它是投擲 java.lang.IllegalStateException:當前請求的類型爲[org.springframework.web.multipart.MultipartHttpServletRequest]的不:FirewalledRequest [[email protected] ] –
正確,你需要一個multipartResolver bean。 Spring解析器是實際構建你的方法參數的東西。如果多部分請求沒有解析器,則永遠不會獲得解析器。 如果commonsmultipartresolver不起作用,請參閱我的博文。你可能需要寫一個自定義的(他們並不難寫)。 – aweigold