Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Как удалить файл после скачивания его пользователем?

#php #download


Скачивание файла настроено через jquery, путем передачи ссылки на файл контроллером
и перехода по ней в jquery функцией location. Мне нужно удалить файл после того, как
он скачался.

Таким образом он выдается PHP в jquery

unlink(script_path() . "upload/temp/"  . $import_id . "/" . $sFileName);
echo str_replace('/index.php','/upload/temp/' . $import_id . "/" . $sFileName, site_url());


Если оставить unlink то файл удалиться перед тем как начнется скачивание. По сути
нужно что то типа ожидания в минуту после начала скачивания, а потом удалять файл (файл
не будет весить больше мегабайта).

Я думал сделать ожидание в жквери, но тогда пользователь может закрыть страницу и
скрипт прервется.
    


Ответы

Ответ 1



Складывайте такие файлы в отдельную папку на сервере. Напишите в crontab задачу N раз в день "удалять все файлы из данной папки, если они старше 24 часов", например. find /path/to/temp/files* -mtime +1 -exec rm {} \;

Комментариев нет:

Отправить комментарий