繁体   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