1

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

现在我们检查最后一个文件部分的时间戳,任何在 10 分钟内没有上传块 (1MB) 的东西都会被删除。我们希望能够加快此过程,但如果我们缩短该时间,互联网连接速度较慢的用户可能会在等待上传时遇到文件/记录被删除的情况。

到目前为止,我们已经想到了 2 个解决方案,第一个是我们现在使用的,如上所述。第二种方法是每 X 秒向用户发送一个“保持活动状态”请求,如果服务器在 Y 秒内没有收到更新,则记录将被丢弃。

后者似乎工作得更快,但似乎效率很低。有没有人做过这样的事情?最好的方法是什么?

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

4

1 回答 1

2

当用户终止连接时(无论是通过导航离开还是关闭浏览器),apache 服务器将终止 PHP 进程(如果您的 PHP 中没有 ignore_user_abort())。在关闭功能中,您可以检查连接状态,如果是abortedtimeout,则删除文件。

于 2012-12-19T11:23:11.397 回答