5

初めて表示された後、サーバーから画像(.jpg)を削除しようとしています。ただし、ファイルは表示される前に削除されます(unlink();)。私はすでにsleep()を試しましたが、これはロードを遅らせるだけで、すべてのファイルが表示される前に削除されます。

4

3 に答える 3

6

mod_rewrite を使用して、画像をメモリにロードし、ファイルを削除してから画像を提供するスクリプトに jpg リクエストをリダイレクトできます。IMO、これは最も簡単で簡単な解決策です。以下の危険な例...

.htaccess ファイルの例:

# Turn on URL rewriting
RewriteEngine On

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

index.php

<?php

$image_file = $_SERVER['PATH_INFO'];

// clean data, strip current/parent directory to block transversal, etc...

if (file_exists('images/' . $image_file))
{
    $image_data = file_get_contents('images/' . $image_file);

    // determine image mimetype using phps mimetype functions

    unlink('images/' . $image_file);

    header('Content-Type: image/jpeg');

    echo $image_data;
}
于 2011-04-22T23:58:41.720 に答える
2
  • イメージの内容をファイルからメモリにコピーします。
  • 画像ファイルを削除します。
  • 元のコンテンツをメモリから出力にストリーミングします。

あいまいさで私ができる最善のこと、恐れています。

于 2011-04-23T01:03:38.957 に答える
0

これは、出力をレンダリングする前にすべてのPHPがスタックで実行されるためです。次のページの読み込み時に削除するファイルにフラグを立てる関数を設定する必要があります。

または、ドキュメントの読み込み後に画像を削除するようにAJAXを設定することもできます。

于 2011-04-22T23:48:37.283 に答える