【发布时间】:2026-01-01 00:00:02
【问题描述】:
我们在 GWT 中有一个用于上传文件的上传表单。上传文件的时候效果很好,但是如果我们连续上传两个以上的文件,然后点击浏览器的后退按钮,就会发生奇怪的事情。页面消失,最终重新加载,然后冻结。在重新加载之前,没有按钮是可点击的。这发生在 Chrome 39 中,但不是我尝试过的其他浏览器(和旧版本的 firefox)。
为什么表单面板提交会做这样的事情?我该如何解决?我似乎找不到从历史记录中删除表单提交的方法,或者在不使用 GWT 的 FormPanel 和 FileUpload 的情况下上传文件的简单方法。我不能在每次上传文件后都重新加载页面,因为刷新很慢。
以下是创建面板相关部分的代码:
FormPanel uploadForm = new FormPanel();
uploadForm.setEncoding(FormPanel.ENCODING_MULTIPART);
uploadForm.setMethod(FormPanel.METHOD_POST);
uploadForm.setAction(servletPath + destinationUrl);
FileUpload fileInput = new FileUpload();
uploadForm.add(fileInput.asWidget());
当用户点击上传选定的文件时,我们使用:
uploadForm.submit();
GWTUploadProject 不是解决方案,因为它的效果可能更差。如果您在他们的examples page 上上传后尝试点击返回,则会显示之前上传图片的额外缩略图!
【问题讨论】:
-
您能否更详细地描述如何使用 gwtupload 示例重现该问题,我是该库的作者,如果可以重现,我想解决该问题。
-
@ManoloCarrascoMoñino 当然。转到this page。单击第一个“示例”。单击“选择文件”选择一个文件,然后单击发送。这样做三遍。 (您现在应该在底部看到三个缩略图。)单击浏览器后退按钮。将出现第四个缩略图。这也适用于单个文件上传器。在 Chrome 39 中,不确定其他浏览器。
-
我明白了,我会调查发生了什么
-
我已经修复了 gwtupload 中的问题,您可以检查一下演示页面是否适合您?
-
@ManoloCarrascoMoñino 实际上我仍然看到同样的问题。
标签: java gwt file-upload browser-history