java - 上传文件时处理网络问题

标签 java javascript html gwt file-upload

这是到目前为止生成的 html(使用 GWT 作为前端),我到目前为止所拥有的复制了 GWT FileUpload类。

<input type="file" id="input" onchange="handleFiles(this.file)">

HandleFileUploadServet.java 的帮助下工作正常,因为 java 作为后端。

使用 addSubmitCompleteHandler 处理它

form.addSubmitCompleteHandler(new SubmitCompleteHandler() {..

相当于

 .submit(function(){
   //handle file response
})

工作正常。

这是问题所在,上传文件时如果互联网断开,浏览器不会抛出错误/异常/响应

我想通知用户,存在网络问题。

但是浏览器一直在提交表单并且没有从该状态返回。

有什么提示吗?

感谢您的宝贵时间。

最佳答案

如果事件为空,是否检查你的处理程序?

form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
        public void onSubmitComplete(SubmitCompleteEvent event) {
            if(event != null){
                   Window.alert("Upload OK!");
            }else
                   Window.alert("Upload fail");
    });

但我认为如果您遇到网络问题,SubmitCompleteEvent 永远不会被触发。

一个解决方案是在提交文件时设置一个计时器:

public class ViewWidget {

Form form;
Timer timer = new Timer() {
     @Override
     public void run() {
         Window.alert("Troubles with upload! Try again!");
     }
 };

 public ViewWidget(){
     form.addSubmitHandler(new SubmitHandler() {

        @Override
        public void onSubmit(SubmitEvent event) {
            timer.schedule(10000);
        }
    });

     form.addSubmitCompleteHandler(new SubmitCompleteHandler() {

        @Override
        public void onSubmitComplete(SubmitCompleteEvent event) {
            //Cancel the timer
            timer.cancel();

            if(event != null){
                //Do your Stuff
                Window.alert("Upload Ok !");
            }else
                Window.alert("Upload Fails");
        }
    });
 }

我没有尝试代码,但它应该可以工作。

希望对您有所帮助。

关于java - 上传文件时处理网络问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18828719/

相关文章:

java - 如何在一个类中操作另一个类中的数组?

javascript - IE < 9 + HighCharts 不渲染系列

jquery - Span 元素在动画开始后被剪掉

java - 具有 spring 框架支持的 cms

java - Visual Studio 代码 Java : Disable serialVersionUID warning

java - 如何在 java 中启动一个 thrift 非阻塞服务器?

javascript - 获取 USDT 交易的哈希值和金额

javascript - 如何向 WooCommerce 结帐页面中的自定义选择框添加验证并应用 select2 样式。

php - 如何在不丢失变量值的情况下使用多种形式?

javascript - 带选项卡的复选框