失敗したアップロードを自動的にクリーンアップする方法は? PHPはこれをここに保存し、/tmp
すべてのファイル名は次のとおりですphpAbCDeF
(デフォルトではphpの後に6文字が続きます)。
次のコマンドが利用できることを知っています。
find /tmp -name php\*
ただし、これを行うと、削除したくないPHPで始まる他の一時ファイル(他のプロセスによって生成されたもの)も削除されます。
解決策を提案してください。
答え1
ファイルの命名方法によって異なります。いくつかの提案があります:
php
名前の後に6文字が続くすべてのファイルを削除します。find /tmp -type f -name 'php??????' -delete
php
名前で始まるすべてのファイルを削除します。空:find /tmp -type f -name "php*" -empty -delete
より良いアプローチは、サーバー上のファイルを編集し
php-ini
て変数を設定することですupload_tmp_dir
。これにより、そのディレクトリ内のすべてのエントリを削除できます。たとえば、次のように設定した場合php.ini
:upload_tmp_dir=/tmp/phptmp
その後、フォルダからすべてのファイルを簡単に削除できます。
rm /tmp/phptmp/*
答え2
作成/変更が可能なアプリケーションの場合は、一時register_shutdown_function
ファイルの作成に使用することをお勧めします。これにより、unlink
スクリプトが中断されても可能です。