Как сохранить временно картинку в Laravel?

7 мая, 11:06 Работа 3862 5
Есть задача, нужно сделать предпросмотр большой картинки (6000x3000) которую загружает пользователь через форму. Только предпросмотр будет на другой странице сайта. По этому картинку нужно как-то сохранить.
Есть ли в laravel способ сохранить картинку на определенное время? Чтобы директория сама потом чистилась с временными изображениями. Или же остается способ загружать картинку как обычно и по крону отчищать директорию?
5 комментариев
Сортировка:
Добавить комментарий
Andrey Kolosov
Andrey Kolosov 2019, 7 мая, 17:28
0
"Что лучше" - зависит от каждого случая индивидуально, если ничего "лишнего" в проекте нет - можно использовать at + cron (для не частых проверок на наличие различного мусора, который по какой-то причине не был удалён, хотя, возможно это и не обязательно, глубоких тестов я не проводил...)
King Artur
King Artur 2019, 7 мая, 16:32
0
При необходимости можно "притащить тяжелую артилерию", поставить сервер очередей (или использовать уже имеющийся, если таковой есть, вот тут кое-что об этом писали), соотв. при загрузке картинки добавлять задачу на удаление оной как "отложенную".
Leonid Levchenko
Leonid Levchenko 2019, 7 мая, 15:23
0
Я бы пользовался at, оно как мне видится чуть больше подходит для данной задачи. Так же, в Redis'е есть возможность устанавливать срок жизни данных, а в Laravel есть поддержка Redis'а. Можно воспользоваться этой возможностью Redis'а, сохраняя данные там. Так же в Redis'е есть "события", которые в т.ч. могут оповестить о том, что срок жизни "таких-то" данных истёк и привязать соотв. удаление файла связанного с этими данными с диска.
Vova P
Vova P 2019, 7 мая, 14:10
0
Теоретически, можно, наверное, сделать переход на страничку с превью без реальной перезагрузки страницы(как в SPA), и не придётся передавать изображение на сервер. Есть даже всякие либы чтобы быстро это сделать, типа PJax
Viktor Kravchenko
Viktor Kravchenko 2019, 7 мая, 12:11
0
В самом Laravel'е - вряд ли (скорее всего - нет). По причине того, что это не очень типовая задача и к конкретному фреймворку (например, Laravel) она прямого отношения не имеет.

IT Новости

Смотреть все