3

我有一个 PHP 用户注册图片的上传表单。
我使用 Wamp 服务器。
我希望当用户开始上传文件然后放弃上传表单(出于任何原因)时,上传的文件会在 10 分钟后被删除。

如何从这些废弃的上传表单中删除服务器上的临时文件?
或者
我如何为上传的文件创建一个临时文件夹并在一段时间后清空它?

如果不使用 PHP 代码我怎么能做到这一点,因为可能在上传文件后用户不会继续并且 PHP 脚本不会处理它,所以文件不会被删除,但应该被删除。

不使用 PHP 代码如何做到这一点?
或者
如何在没有用户请求的情况下运行 PHP 代码并通过服务器删除旧的上传文件?

4

1 回答 1

1

您可以使用 ini 文件中的http://php.net/manual/en/ini.core.php#ini.upload-tmp-dir或使用 ini 函数设置 temp_folder

您可以通过http://php.net/manual/en/function.sys-get-temp-dir.php获取临时文件夹位置


临时文件( ei : $_FILES['userfile']['tmp_name'])在脚本完成后立即删除php:: tmp 文件保留多长时间?和 php 文档。


如果您正在谈论您移动到其他地方的文件并且您的服务器有权在文件夹中写入/删除,您可以执行类似的操作

foreach (glob("your_temp_folder/*") as $Filename) {

    // Read file creation time
    $FileCreationTime = filectime($Filename);

    // Calculate file age in seconds
    $FileAge = time() - $FileCreationTime; 

    // Is the file older than the given time span?
    if ($FileAge > ($expire_time * 60)){

        // Now do something with the olders files...

        print "The file $Filename is older than $expire_time minutes\n";

        // For example deleting files:
        //unlink($Filename);
    }
}

代码片段归功于 => http://www.jonasjohn.de/snippets/php/delete-temporary-files.htm

于 2017-05-07T19:06:07.780 回答