【发布时间】:2012-11-21 05:27:05
【问题描述】:
我有一个常规的 JSP/Servlet/Java Web 应用程序,用于从移动设备上传图片。我正在使用 Apache Commons 库进行上传。应用程序托管在 WebSphere Application Server 7.0 上。
一切正常,如果用户有非常好的/强信号/连接或良好的 WiFi,他可以上传几张总计 8MB 或更多的图片。
当用户位于 3G/4G 信号/连接不佳的位置时,就会出现问题。他收到诸如“非法状态异常”或一些超时错误之类的错误,在某些情况下,移动浏览器只是停留在提交页面上,进度条不再移动。
关于如何“优雅地”处理这个问题有什么建议吗?就像有没有办法在设定的时间后进行干预并让用户可以选择提交没有文件附件的表单(即只提交表单文本字段)?也欢迎任何其他建议。
更新: 下面的 setTimeout 解决方案对我有用。另一个缺失的部分是我必须发出“浏览器停止”命令来停止正在进行的原始提交,然后才能发出重新提交。否则,我的重新提交命令将被浏览器忽略。
【问题讨论】:
-
您可以调整任何 conf 参数以延长超时时间吗?
-
会话超时在 WAS7 中设置为 30 分钟。但我正在寻找的是一种在会话超时之前干预上传方式中间的方法。比如说,10 分钟后,如果文件仍在上传,我会显示一个对话框,让他选择提交不带文件附件的表单。
-
大多数浏览器在整个请求发送之前不会从服务器读取,所以你想做的事情会非常困难。
-
@irreputable 不,不是真的。让我回答这个问题:)
-
@naugtur - 是的,需要客户端魔法来实现它。
标签: java javascript servlets upload websphere