2015-11-21 5 views
0

Я действительно не совсем понимаю концепцию загрузки нескольких файлов с предварительным просмотром. Я проверил DropzoneJS, и это выглядит красиво, и я чувствую, что могу сделать с ним много всего.Как загрузить несколько изображений с DropzoneJS

У меня есть этот пример: у меня есть пользователь (id: 801), который создает новое сообщение (id: TBD, поскольку сообщение еще не создано). У меня есть таблица image_post, в которой хранятся изображения определенного сообщения, и таблица image, в которой содержатся детали изображения. Теперь у меня есть форма Dropzone, которая должна загружать изображения в папку, которую я указываю в файле .php, который реализован для обработки запроса ajax, поступающего из Dropzone. Скажем, пользователь загружает 2 изображения, и я храню их в папке temp. Пользователь отправляет создание нового сообщения, получает идентификатор: 10001. Временные файлы находятся на диске (но должны ли они также храниться в БД?), Но не видите, как связать сообщение с изображениями ,

Каковы точные шаги, которые необходимы для возможности (после того, как файлы были загружены с помощью запроса Dropzone ajax) связать эти изображения с фактическим идентификатором сообщения?

ответ

0

Ваша система должна будет создать запись базы данных для сообщения перед их загрузкой изображений. Рассмотрим следующую структуру таблицы, где префикс i указывает столбец INT, s столбец VARCHAR/TEXT и dt a DATETIME.

Таблица posts: iPostId | iUserId | iStatus | sComments | dtCreated

Таблица photos: iPhotoId | iPostId | dtUploaded

Когда пользователь начинает начать новую запись, создать запись в таблице записей с идентификатором пользователя, пустыми комментариями, Задана такими как '0000-00-00 00:00:00' и статус , а затем добавьте скрытый ввод формы в форму загрузки фотографий, чтобы назначенный почтовый идентификатор был известен вашему сценарию загрузки фотографий, например:

<input type="hidden" name="iPostId" value="22" />

Сценарий загрузки фотографий может создать новую запись в таблице фотографий с использованием идентификатора сообщения, а затем сохранить фотографию в определенной папке, используя идентификатор сообщения в имени файла, например, если для создания файла photo_id было создано 2821 вы сохраните файл как 2821.jpg в выбранной вами папке.

Когда пользователь заканчивает свое сообщение и нажимает для сохранения/отправки, вы можете использовать запрос UPDATE, чтобы изменить исходную запись в таблице сообщений, назначив их введенный текст столбцу sComments, текущую дату и время на dtCreated столбца и изменение iStatus на 1.

На ваших страницах, где вы показываете список сообщений, просто измените свой запрос на что-то вроде этого, чтобы исключить те, которые в настоящее время находятся в статусе черновика (0): SELECT * FROM posts WHERE status=1;, а затем при просмотре вы можете запустить такой запрос, как SELECT * FROM photos WHERE post_id=22;, чтобы получить массив фотографий для отображения.

Очевидно, это можно расширить, но, надеюсь, дает вам хорошую отправную точку.