PHP :: Как удалить файл с сервера после чтения. Unlink () выполняется до

Я пытаюсь удалить изображение (.jpg) с сервера после первого показа. Но файл удаляется (unlink ();) перед отображением. Я уже пробовал с sleep (), но это только задерживает загрузку, и после того, как файл удален, пока не появится.

    Вы можете использовать mod_rewrite для перенаправления jpg-запросов на скрипт, который загружает изображение в память, удаляет файл, затем служит для изображения. ИМО, это самое простое и простое решение. Небезопасный пример ниже …

    Пример файла .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; } 
    • Скопируйте содержимое изображения из файла в память;
    • Удалить файл изображения;
    • Поток исходного содержимого из памяти в вывод.

    Боюсь, что я могу сделать это с неопределенностью.

    Это связано с тем, что весь PHP выполняется в стеке перед рендерингом вывода. Вам нужно будет настроить функцию для флага файла для удаления при загрузке следующей страницы.

    ИЛИ вы можете настроить AJAX для удаления изображения после загрузки документа.