[英]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.