@Tereverda

Как одновременно отобразить страницу, выдать файл и удалить его после?

В документации есть пример кода для выдачи файла в браузер
return response()->download($pathToFile, $name, $headers);


Не понимаю, как реализовать:
- как отобразить страницу?
- затем выдать файл в бразер - он генерируется
- удалить файл, return, ведь будет выше, как после него реализовать удаление?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
так как вы используете Response-фасад то есть встроенный метод

response()
->download($pathToFile, $name, $headers)
->deleteFileAfterSend(true); //<--

https://dev.to/codeanddeploy/how-to-delete-files-a...

Альтернативные варианты
Terminable Middleware позволит выполнить любой код перед завершением работы скрипта (уже после того как был отдан Response), туда можно разместить код удаления файла. Под капотом используется fastcgi_finish_request()

или Job::dispatchAfterResponse()
https://divinglaravel.com/running-a-task-after-the...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
pLavrenov
@pLavrenov
Разработка сайтов
Это так не работает,
Отдать файл это один ответ
Отдать страницу это другой ответ

Чтобы сделать надо отдать страницу на которой будет срабатывать js с запросом на файл.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы