1

我正在使用将文件发送到 php 中的服务器端脚本的上传程序小程序。我想确保,如果用户在文件完成上传之前关闭页面,文件将从服务器中删除,因为它们无法正确处理。

问题来自这样一个事实,即我有一个站点试图同时调用两个服务器端脚本。

如果我要关闭页面而不运行上传程序小程序,则会调用文件删除脚本

$(window).bind('beforeunload', function(){
    $.post("cancel.php");
});

但是,如果我运行上传程序小程序,则不会触发该事件并且文件只是位于服务器上。有没有办法停止上传脚本以允许取消脚本运行?如果没有,有没有办法在运行取消脚本和关闭窗口之前等待上传脚本停止?

编辑:啊,谷歌搜索你的问题的答案只是为了看到你关于堆栈溢出的问题是谷歌的热门话题......

编辑 2:因此,在我的 beforeunload 事件中重新安排我的调用顺序之后,我已经成功地能够在我想要的时候调用我想要的脚本。cancel()在尝试调用其他脚本之前,我必须确保调用了小程序。

4

1 回答 1

1

Rather than running a script to dynamically delete the file, why not transfer a checksum (perhaps an MD5 checksum) over to the server and check for incomplete file transfers?

Reference: http://php.net/manual/en/function.md5-file.php

This way, you don't need to rely on an entire script (and the HTTP requests) required for deleting the scripts - and use a database to index the unchecked files appropriately.

Enjoy and good luck!

于 2012-07-17T20:43:05.087 回答