@urajo

Как правильно загружать картинки?

Вопрос такой. Когда добавляется картинка в текст - она сразу же загружается на сервер, если я например первый раз выберу 1 картинку, она загрузится, я передумаю и выберу другую, то на сервере будет 2 картинки.
Или же если я напишу пост, добавлю картинки и передумаю его публиковать - картинки останутся на сервере.
Вопрос какие кейсы есть, что бы не замусоривать сервер картинками которые не используются?
Мне предложили вариант - сделать временную папку и после публикации перекидывать картинки в постоянную, я не совсем понимаю как это сделать.
Я нажимаю добавить картинку, она уходит на сервер, там ей присваивается новое уникальное имя, допустим я сохраняю это в папку временную, как мне при сохранении поста из текста получить имена всех загруженных картинок, что бы названия этих картинок передать на сервер и перенести нужные в постоянную папку?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
@alexalexes
Я нажимаю добавить картинку, она уходит на сервер, там ей присваивается новое уникальное имя,

... которое сервер тут же передает клиенту, как только файл гарантировано сохранился в хранилище (да, не обязательно, чтобы это был каталог сервера, он может загрузить файл через api облака, например, сам являясь клиентом системы хранения файлов).
На клиенте, в скрытом поле вы собираете коллекцию уникальных имен файлов (идеально, если это будут id/guid/или другой род хеша).
Когда пользователь удаляет файл, который был успешно отправлен серверу, можно отправить запрос, чтобы файл с таким-то идентификатором можно удалить, или поставить на удаление в очередь, если зачистка не сразу происходит.
Когда пользователь сабмитит форму, тогда серверу передаются уникальные идентификаторы файлов, по которым сервер уже либо перемещает файлы на постоянное хранение, либо меняет их статус (файлы связывают с идентификатором поста, например).
Те, файлы, которые остались в статусе черновика, скажем, в течение недели, можно зачистить скриптом, запускаемым по расписанию.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы