1

php外部アプリケーションを使用して画像を生成する Web サービスを開発しています。画像ファイルを生成した後、html ページに挿入されます。このような:

<img src="img/52454879c7158.png">

ファイルを表示すると、そのファイルは不要になります。しかし、最終的には写真付きのフォルダーに大量のファイルが蓄積されます。ファイルの削除を自動化するにはどうすればよいですか?

4

2 に答える 2

1

時間を削除するだけでunlinkを使用

unlink(folder/filename);

unlink("folder/images/image_name.jpeg");

PHPを使用して画像を削除した後に画像を表示

$imageUrl = "/images/123.jpg"; // link to image
$imginfo = getimagesize($imageUrl); // get mime info

header("Content-type: " . $imginfo['mime']); // add Content-type header

readfile($imageUrl); // show image

unlink($imageUrl); // delete image
于 2013-09-27T09:55:39.263 に答える
1

Unixプログラムが見つけた特定のディレクトリ内のファイルを定期的に削除する必要があります。特定のケースでは、1 日以上経過した img フォルダーからすべての画像ファイルを削除する必要がありました。

これは、それを達成するための crontab エントリです。

コマンドは

crontab -l

Linux Crontab フォーマット

MIN HOUR DOM MON DOW CMD

0 0 * * * /usr/bin/find /yourpathto/img/ -type f -name '*.png' -mtime +1 -exec rm {} \;

(すべて一行で)

このコードは、/usr/bin/find毎日午前 0 時にプログラムを実行し(0 0 * * *)ます。/yourpathto/imgファイル ( -type f) で、.png で終わる名前 (-name '*.png') で、1 日前またはその前に作成されたもの( ) のすべてに対して呼び出されたディレクトリをチェックします-mtime +1。コマンドは、それらのすべてのファイルに対して rm (削除) を実行します(-exec rm {} \;)

または、 を使用し*.*て内部のすべてのファイルを削除できます/yourpathto/img/*.*

crontab をセットアップすると、自動的に実行され、/yourpathto/img/ディレクトリからすべてのファイルが削除されます。

ファイルを削除する代替オプション:

function removeall()
{
    $files = glob('path/to/img/*'); // get all file names
    foreach($files as $file){ // iterate files
      // Here you should make one condition that if user has view / download this file and remove it 
      if(is_file($file))
        unlink($file); // delete file
    }
}

ここで、ユーザーがファイルをダウンロードした場合、この関数よりもファイルを削除するために呼び出されるものを適用する必要があります。

于 2013-09-27T10:08:48.087 に答える