Удалить изображение после того, как оно было просмотрено посетителем

Я хочу показать своим посетителям изображения в папке, и после того, как они увидят, я хочу, чтобы все эти файлы были удалены!

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

<?php
    foreach (glob("files/*.*") as $prevpic) {
        echo '<img src="' . $prevpic . '" />';
    }
    foreach (glob("files/*.*") as $file) {
        unlink($file);
    }
    move_uploaded_file($_FILES["file"]["tmp_name"], "files/" . $_FILES["file"]["name"]);
?>

2 ответа

Вы можете сделать что-то вроде этого...

<?php

    foreach (glob("files/*.*") as $file) {
        echo '<img src="data:image/' . pathinfo($file, PATHINFO_EXTENSION) . ';base64,' . base64_encode(file_get_contents($file)) . '" />';
        unlink($file);
    }

?>

... который в основном записывает данные изображения в HTML, а затем отбрасывает изображение.

Я бы справился с этим, просто управляя вашими изображениями через скрипт загрузки (php). Вы отслеживаете сеансы и просто не отображаете запрошенные изображения, но терпите неудачу с ответом или позволяете своему приложению обрабатывать его с помощью отслеживания на основе сеансов.

Таким образом, никакие изображения не удаляются "onview".

Другие вопросы по тегам