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