Как я могу организовать хранение картинок на сервере, чтобы не замусоривать его неиспользуемыми изображениями? Я рассматриваю вариант использования временной папки для загрузки изображений, а затем перемещения только необходимых изображений в постоянную папку после публикации. Как я могу получить имена всех загруженных картинок из текста при сохранении поста, чтобы передать эти имена на сервер и переместить нужные изображения в постоянную папку?
Загрузка изображений требует определенных шагов для обеспечения эффективного хранения и организации на сервере. Вот некоторые рекомендации: 1. Создайте временную папку для загрузки изображений на сервер. Временная папка должна быть доступна для записи и временно хранить все загруженные изображения. 2. При загрузке изображений на сервер, сохраняйте их в эту временную папку. Для этого можно использовать множество технологий, включая HTML-формы с атрибутом enctype="multipart/form-data", а также различные фреймворки и библиотеки. 3. После успешной загрузки, обрабатывайте данные на сервере. Переименовывайте загруженное изображение в уникальное имя, чтобы предотвратить возможные конфликты и перезапись файлов. При этом обязательно сохраните оригинальное имя файла вместе с расширением. 4. Перемещайте только необходимые изображения из временной папки в постоянную папку после публикации. Это может быть автоматическим процессом, который должен быть реализован на вашем сервере. 5. Чтобы получить имена всех загруженных изображений из текста при сохранении поста, вам нужно разобрать текст и найти ссылки на изображения. Для этого можно использовать регулярные выражения или парсинг HTML. Полученные имена изображений можно сохранить вместе с данными поста на сервере. Обратите внимание, что в зависимости от вашего стека технологий и требований проекта, процесс загрузки изображений и организации их хранения может отличаться. Рекомендуется использовать существующие библиотеки и фреймворки, чтобы упростить этот процесс и избежать возможных ошибок.
Я нажимаю добавить картинку, она уходит на сервер, там ей присваивается новое уникальное имя,... которое сервер тут же передает клиенту, как только файл гарантировано сохранился в хранилище (да, не обязательно, чтобы это был каталог сервера, он может загрузить файл через api облака, например, сам являясь клиентом системы хранения файлов).На клиенте, в скрытом поле вы собираете коллекцию уникальных имен файлов (идеально, если это будут id/guid/или другой род хеша).Когда пользователь удаляет файл, который был успешно отправлен серверу, можно отправить запрос, чтобы файл с таким-то идентификатором можно удалить, или поставить на удаление в очередь, если зачистка не сразу происходит.Когда пользователь сабмитит форму, тогда серверу передаются уникальные идентификаторы файлов, по которым сервер уже либо перемещает файлы на постоянное хранение, либо меняет их статус (файлы связывают с идентификатором поста, например).Те, файлы, которые остались в статусе черновика, скажем, в течение недели, можно зачистить скриптом, запускаемым по расписанию.