我正在使用FormPanel将文件上传到服务器.我要做的是在上传之前确保文件大小小于给定大小(例如10MB).在服务器端,我有一个javax.servlet.http.HttpServlet,我在那里覆盖了doPost.这里HttpServletRequest参数具有文件的大小,但问题是我没有到达doPost,直到文件已经上传.因此,如果我选择上传1 GB文件,则在上传整个文件后,客户端收到的"文件太大"错误消息将显示30秒左右.
在上传之前,有没有办法检查客户端的大小?或者,如果数据大小超过特定大小,则让servlet抛出异常.
小智 5
只需添加原生方法:
private native int getFileSize(final Element data) /*-{
return data.files[0].size;
}-*/;
Run Code Online (Sandbox Code Playgroud)
然后像这样调用它:
final FileUpload upload = new FileUpload();
//
// some actions
//
final int size = getFileSize(upload.getElement())
Run Code Online (Sandbox Code Playgroud)
对我来说工作得很好.