这是到目前为止生成的 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/