3

PHPによるユーザー登録画像のアップロードフォームがあります。
私はワンプサーバーを使用しています。
ユーザーがファイルのアップロードを開始してから、(何らかの理由で) アップロード フォームを放棄したときに、アップロードされたファイルが 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 : ) は、このphp:: how long to tmp files stay?$_FILES['userfile']['tmp_name']に従ってスクリプトが実行された直後に削除されます。そして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 に答える