gpt4 book ai didi

javascript - Fineuploader 在服务器响应延迟的情况下重新启动上传

转载 作者:行者123 更新时间:2023-11-29 22:13:38 25 4
gpt4 key购买 nike

遇到一个非常奇怪的问题,正在寻找方向。

上下文: 在 WordPress 中上传大文件(最大 100MB)。作为该过程的一部分,服务器端还运行着一项较长的任务(使用分块通过其 API 将文件推送到 DropBox),因此对于较大的文件,响应不可避免地会延迟。这部分可以通过执行 PHP 的 sleep() 函数轻松模拟。

问题:Fineuploader 达到 100%,显示 waitingForResponse 消息约 15 秒(此时服务器仍未完成处理),然后继续重启从头开始上传。第二次尝试后,它声称没有从服务器收到任何内容,并将上传列为失败。控制台调试消息:

[FineUploader] xhr - server response received for 0
XMLHttpRequest { readyState=4, timeout=0, withCredentials=false, more...}
[FineUploader] responseText =

服务器日志显示两次 请求并且服务器回显成功 JSON 两次;最后服务器上有两个文件。

问题:我该怎么做才能解决这个问题?我可以定期向 FineUploader 返回一些东西以确保没有超时吗?

最佳答案

Fine Uploader 没有适当的超时机制。如果您看到超时,要么是浏览器本身强制超时,要么是浏览器和您的服务器之间的某些设备超时。

我过去在使用 AWS(亚马逊网络服务)时遇到过这个问题。与您的情况类似,在返回响应之前收到整个文件后,我必须在服务器端执行一些处理。当然,在此处理过程中,不会发生 TCP 流量。结果发现 ELB(弹性负载均衡器)有 1 分钟的 TCP 空闲超时。处理大文件超过这个值,导致ELB终止请求。

您只能在完成请求/上传后向 Fine Uploader 返回响应。如果您真的想等到服务器端处理完成后再向 Fine Uploader 返回“成功”响应,则需要弄清楚是什么终止了您的请求。您的选择可能会增加终止请求的设备的超时时间,或者只是将处理委托(delegate)给单独的线程服务器端,并在收到所有文件字节后立即返回成功响应。订单。

关于javascript - Fineuploader 在服务器响应延迟的情况下重新启动上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16631078/

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