繁体   English   中英

使用GWT上传前检查文件大小

[英]Check file size before upload using GWT

我正在使用FormPanel将文件上传到服务器。 我要做的是在上传之前确保文件大小小于给定大小(例如10MB)。 在服务器端,我有一个javax.servlet.http.HttpServlet,我在那里覆盖了doPost。 这里HttpServletRequest参数具有文件的大小,但问题是我没有到达doPost,直到文件已经上传。 因此,如果我选择上传1 GB文件,则在上传整个文件后,客户端收到的“文件太大”错误消息不会显示30秒左右。

在上传之前,有没有办法检查客户端的大小? 或者,如果数据大小超过特定大小,则让servlet抛出异常。

只需添加原生方法:

private native int getFileSize(final Element data) /*-{
            return data.files[0].size;
        }-*/;

然后像这样调用它:

final FileUpload upload = new FileUpload();
//
// some actions
//
final int size = getFileSize(upload.getElement())

对我来说工作得很好。

没有办法从服务器上执行此操作,您必须在上载之前进行检查。 你可以在GWT SDK中找到几条路线

因为并非所有GWT支持的浏览器都实现了HTML5的File API,所以没有本机GWT解决方案。 但是,您可以尝试使用此库,它为您提供支持HTML5文件api的文件上载小部件:

https://code.google.com/p/lib-gwt-file/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM