上载期间检测客户端超时(服务器端)

时间:2012-12-19 11:13:01

标签: php jquery upload timeout

在上传的大文件的第一个块上,我们将文件详细信息输入到数据库中。如果用户导航离开页面。发送ajax请求并删除该行。但是,如果他们的连接/电源关闭,则不会发送请求,我们最终会在数据库中输入孤立条目。

现在我们检查最后一个文件部分的时间戳,并在10分钟内删除任何未上传块(1MB)的内容。我们希望能够加快这一过程,但如果我们减少这段时间,那么网络连接速度慢的用户可能会在等待上传时删除他们的文件/记录。

到目前为止,我们已经考虑了2个解决方案,第一个是我们现在正在使用的解决方案,如上所述。第二种是每隔X秒从用户发送一次“保持活动”请求,如果服务器在没有收到更新的情况下进行Y秒,则记录被删除。

后者似乎工作得更快,但似乎非常低效。以前有人做过这样的事吗?什么是最好的方式?

在Ubuntu上运行Apache,我也在使用jQuery。

1 个答案:

答案 0 :(得分:2)

当用户终止连接时(无论是通过导航还是关闭浏览器),apache服务器将终止PHP进程(如果PHP中没有ignore_user_abort())。在shutdown function中,您可以查看connection status,如果是abortedtimeout,请删除该文件。

相关问题