У моего сайта есть функция, позволяющая пользователям создавать сообщения (например, Facebook). У меня есть форма с полем ввода «Сообщение» и кнопка, которая позволяет пользователям загружать изображения.Отправка данных после загрузки изображения
Прямо сейчас, как я настроил код, когда пользователь отправляет форму, мой код сначала отправит данные, а затем загрузит изображения.
Проблема заключается в том, что если пользователь отменяет загрузку изображения на полпути, запись базы данных будет существовать (поскольку данные были отправлены до загрузки изображения), но загруженных изображений не будет.
Итак, мое решение состоит в том, чтобы сначала загрузить изображения и отправить данные после. Проблема в том, что я не уверен, как я могу привязать изображения к данным в записи базы данных.
Должен ли я загрузить все изображения в /tmp
, а затем переместить файлы в постоянной директории, как /var/www/html/website/public/img/uploads/<upload_id>
где upload_id
является в id
в записи базы данных?
Что делать, если пользователь загружает изображение, но закрывает вкладку наполовину. Тогда будет изображение в /tmp
, которое останется там навсегда, если только каталог не будет очищен. Как я смогу его очистить?
Это лучший способ сделать это или есть лучшие способы?
Я использую Laravel 5.3 и Dropzone.js.
Спасибо.
Пожалуйста, перечитайте мой вопрос. Я не ищу такого решения. – user7315267
Хорошо, если вы не хотите менять решение, вы должны сделать предварительный просмотр изображений без сохранения. Я думаю, этот пост будет полезен - http://stackoverflow.com/questions/4459379/preview-an-image-before-it-is-uploaded. С предварительным просмотром. Если пользователь закрывает форму, изображение не будет храниться в БД и на диске. И если пользователь подтвердит данные формы - вы должны загрузить изображение и подтвердить форму так, как я написал ниже. –