ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode

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

Веб-приложение послало запрос на API, в ответ приходит изображение. Я должен его сохранить в папке, а после добавляю во view (использую Laravel). Но после закрытия страницы этот файл не нужен. Как его можно удалить?
Для запроса к API использую Guzzle

Или есть другой способ отобразить в html странице изображение без сохранения?
  • Вопрос задан
  • 217 просмотров
Решения вопроса 2
alsopub
@alsopub
Вы наверное это ищите - https://ru.wikipedia.org/wiki/Data:_URL
<img
src="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw
AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz
ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp
a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl
ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis
F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH
hhx4dbgYKAAA7"
alt="Larry" />
Ответ написан
Вариант первый
я так понимаю, что осуществляется примерно следующий воркфлоу:
  1. пользователь заходит на страницу
  2. делает запрос к вашему сервису
  3. сервис делает запрок к апишке
  4. сервис получает ответ и вместе с ним изображение
  5. отдает ответ клиенту
  6. конец

если так, то вы можете получить картинку, сохранить ее, закодить ее в base64, удалить картинку и отдать пользователю картинку в виде base64-строки. браузер умеет отобразить изображение, которое ему подсунули в виде base64-строки
отображать примерно так: jsfiddle.net/casiano/xadvz
минус: если картинка будет большой, то эта строка тоже будет большой. она будет передаваться в отрендереной страница - объем страницы вырастет

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

Вариант третий
хранить файлы изображений в отдельной папке и периодически ее вычищать. дополнительно можно фильтровать файлы, которые удаляете и удалять только те, которые были созданы (mtime) или к ним был доступ (atime) не позже, чем какой-то промежуток времени
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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