簡體   English   中英

gwtupload:設置動態文件上傳大小

[英]gwtupload: Set dynamic file upload size

我正在解決GWT中的文件上傳問題。 我的測試應用程序運行正常。 我想為gwtupload創建的不同上傳小部件設置不同的文件上傳限制。 項目首頁

SingleUploader sUploader = new SingleUploader();

我使用以下代碼在web.xml設置了上傳限制。 是否可以在運行時設置其他文件大小的選項?

<context-param>
    <!-- max size of the upload request -->
    <param-name>maxSize</param-name>
    <param-value>3145728</param-value>
  </context-param>

在gwtupload UploadServlet.java類中,您可以重寫此方法,該方法將在請求傳遞給org.apache.commons.fileupload.servlet.ServletFileUpload之前被調用:

public void checkRequest(HttpServletRequest request) {
    logger.debug("UPLOAD-SERVLET (" + request.getSession().getId() + ") procesing a request with size: " + getContentLength(request) + " bytes.");
    if (getContentLength(request) > maxSize) {
      throw new UploadSizeLimitException(maxSize, getContentLength(request));
    }
}

如果您需要通過SingleUploader修改客戶端的最大允許大小,則可以通過在隱藏表單字段中傳遞maxsize並在覆蓋的checkRequest方法中進行檢查來實現。 然后將再次檢查在web.xml中配置的大小,但是將檢查apache庫並將其作為絕對最大大小。 即您可以限制為一個數字/ lower /,但不能更高。

我最終因為這樣的事情而放棄了gwtupload,並且自己滾動了起來,使用apache fileupload庫非常容易,而且更加靈活。

只需覆蓋以下內容即可。 它對我有用,maxSize是超類中的一個受保護的變量

@Override
public void init() throws ServletException {
    maxSize = 157286400;
    super.init();
}

@Override
public void checkRequest(HttpServletRequest request) {
    maxSize = 157286400;
    super.checkRequest(request);
}

暫無
暫無

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

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