当我尝试在我的应用程序中上传文件时,我遇到了问题。
应用程序服务器是Glassfish 3.1.2.2。
服务器端我正在使用Spring MVC。所以我在beans.xml
声明:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
在控制器中,我有:
@RequestMapping(value = "/processUpload", method = RequestMethod.POST)
@ResponseBody
public Object processUpload(MultipartHttpServletRequest request) {
... do something with request.getFiles(...); ...
}
在客户端,我正在使用XMLHttpRequest
:
xhr.open('POST', url, true);
var formData = new FormData();
formData.append('something', ...);
formData.append('file', file);
它正在使用小文件但是有大文件,它不断给我这个异常消息:
Stream ended unexpectedly
我尝试了什么:
max-post-size-bytes="0"
或max-post-size-bytes="1073741824"
(= 1go / test-file = 300mo)<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
代替commons-fileupload + <multipart-config>
提前致谢,
发烟
答案 0 :(得分:0)
最后,我找到了一个解决方案:
$.ajax({
type : 'POST',
url : '/processUpload',
data : formData,
dataType : 'text',
cache : false,
processData : false,
contentType : false,
xhr : function () {
... progress things ...
}
});
而不是使用原生XHR。
使用:
org.springframework.web.multipart.commons.CommonsMultipartResolver