簡體   English   中英

Glassfish 3.1.2.2文件上傳

[英]Glassfish 3.1.2.2 file upload

嘗試在應用程序中上傳文件時遇到問題。

應用程序服務器是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

我試過了

  • domains.xml中的max-post-size-bytes="0"max-post-size-bytes="1073741824" (= 1go /測試文件= 300mo)
  • 使用https://java.net/jira/browse/GLASSFISH-18444中提供的內容更改web-core.jar
  • 用glassfish / lib中的文件更改commons-io,commons-fileupload
  • 獨立更改網絡核心/獨立更改公用庫
  • 使用<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver">代替web.xml中的commons-fileupload + <multipart-config>

提前致謝,

最后,我找到了一個解決方案:

$.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
  • 上一個commons-io / commons-fileupload庫
  • 默認的glassfish web-core.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM