Java Glassfish 3.1.2.2文件上载

Java Glassfish 3.1.2.2文件上载,java,javascript,spring,apache,glassfish,Java,Javascript,Spring,Apache,Glassfish,我尝试在应用程序中上载文件时遇到问题 应用服务器是Glassfish 3.1.2.2 服务器端我正在使用SpringMVC。所以我在beans.xml中声明: <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> 在客户端,我使用的是XMLHttpRequest: xhr.open('POST', url, true); v

我尝试在应用程序中上载文件时遇到问题

应用服务器是Glassfish 3.1.2.2

服务器端我正在使用SpringMVC。所以我在
beans.xml
中声明:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
在客户端,我使用的是
XMLHttpRequest

xhr.open('POST', url, true);

var formData = new FormData();
formData.append('something', ...);
formData.append('file', file);
它处理的是小文件,但处理的是大文件,它不断向我发出以下异常消息:

Stream ended unexpectedly
我尝试的是:

  • domains.xml中的
    max post size bytes=“0”
    max post size bytes=“1073741824”
    (=1go/test file=300mo)
  • 将web-core.jar更改为中提供的web-core.jar
  • 将commons io、commons文件上载更改为glassfish/libs中的文件
  • 独立更改web核心/独立更改公共LIB
  • 在web.xml中使用
    而不是commons fileupload+
提前感谢,


烟雾

最后,我找到了一个解决方案:

$.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.commons多部分解析器
  • 最后一个公用io/公用文件上载库
  • 默认glassfish web-core.jar
$.ajax({
    type : 'POST',
    url : '/processUpload',
    data : formData,
    dataType : 'text',
    cache : false,
    processData : false,
    contentType : false,
    xhr : function () {
        ... progress things ...
    }
});