gpt4 book ai didi

java - 文件上传慢 : Can I remove file attachment from multipart POST data on the fly and just submit form text fields?

转载 作者:行者123 更新时间:2023-11-30 18:14:27 24 4
gpt4 key购买 nike

我有一个常规的 JSP/Servlet/Java 网络应用程序,用于从移动设备上传图片。我正在使用 Apache Commons 库进行上传。应用程序托管在 WebSphere Application Server 7.0 上。

一切正常,用户可以上传几张总计 8MB 或更多的图像,如果他有非常好的/强信号/连接或良好的 WiFi。

当用户处于 3G/4G 信号/连接较差的位置时,就会出现问题。他得到诸如“非法状态异常”或一些超时错误之类的错误,并且在某些情况下,移动浏览器只是停留在提交页面上,进度条不再移动。

关于如何“优雅地”处理这个问题有什么建议吗?比如有没有办法在一段时间后进行干预,让用户可以选择提交没有文件附件的表单(即只提交表单文本字段)?也欢迎任何其他建议。

更新:下面的 setTimeout 解决方案对我有用。另一个缺失的部分是我必须发出“浏览器停止”命令来停止正在进行的原始提交,然后才能发出重新提交。否则,我的重新提交命令将被浏览器忽略。

最佳答案

这里的用例很简单 - 如果上传没有在 N 分钟内完成,使用 javascript 删除/清除该字段并重新发送表单。

您不需要在基本实现中控制上传,只需安全地假设如果您设置超时重新发送,如果第一次尝试成功并重新加载页面就不会发生。

jQuery 伪代码:

setTimeout(function(){
$imageFieldNode.remove();
$form.trigger('submit');
},30000);//after 30 seconds

更高级的方法是使用现成的解决方案进行受控上传。他们是这样工作的:

  1. 开始上传
  2. js 以 GET 查询的间隔提示服务器以获取已接收的内容的大小。
  3. 每次获取信息时 - 它都会报告进度。

您可以使用这些库做很多事情。

关于java - 文件上传慢 : Can I remove file attachment from multipart POST data on the fly and just submit form text fields?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13688474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com