19.01.2016, 16:49
|
Новичок на форуме
|
|
Регистрация: 02.03.2015
Сообщений: 8
|
|
Форма с прикреплением файлов
Всем доброго времени суток!
Есть форма с обычными текстовыми инпутами и прикреплением файлов. Само прикрепление файлов работает через jQuery File Upload, файлы отправляются в папку на сервере без отправки самой формы.
Возникла проблема как связать файлы, которые прикрепляет пользователь и данные формы, которые отправляются по нажатию на submit?
То есть пользователь прикрепил допустим три файла, потом заполнил контактные данные и нажал "отправить". Файлы загрузились отдельно, данные отдельно. Может кто помочь советом? Заранее благодарю!
|
|
19.01.2016, 16:53
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Какой язык используется сервером? Фалы загружаются с какой целю?
|
|
19.01.2016, 17:12
|
Новичок на форуме
|
|
Регистрация: 02.03.2015
Сообщений: 8
|
|
Сообщение от laimas
|
Какой язык используется сервером? Фалы загружаются с какой целю?
|
Язык PHP, а файлы в качестве дополнительной информации к сообщению посетителя.
В идеале пример работы формы как на avito при добавлении объявления.
|
|
19.01.2016, 17:21
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Авито, не авито, это не важно. Если к сообщению, то контактные данные не обязательно есть уникальность, а значит либо регистрация, либо уже существует. А это означает, что пользователь также в базе под уникальным ID. Вот с этим ID и нужно ассоциировать файлы.
И тут в зависимости от того как организовано их хранение. К примеру, у каждого пользователя своя папка под изображения, значит файлы нужно перемещать в его папку, связывая каждый с ID сообщения.
Если наоборот, папки связываются с ID сообщения, то в нее помещаются файлы которые связываются по ID пользователя.
Ну и третий случай, общая папка (не совсем лучший вариант, если файлов в ней будет много), тогда в эту папку помещается файлы как связанные и по ID сообщения, и по ID пользователя.
Если формируемое имя файла прописывается непосредственно в базу, то могут быть еще варианты.
А у вас как все организовано хранение?
|
|
19.01.2016, 17:26
|
Новичок на форуме
|
|
Регистрация: 02.03.2015
Сообщений: 8
|
|
Сообщение от laimas
|
Авито, не авито, это не важно. Если к сообщению, то контактные данные не обязательно есть уникальность, а значит либо регистрация, либо уже существует. А это означает, что пользователь также в базе под уникальным ID. Вот с этим ID и нужно ассоциировать файлы.
И тут в зависимости от того как организовано их хранение. К примеру, у каждого пользователя своя папка под изображения, значит файлы нужно перемещать в его папку, связывая каждый с ID сообщения.
Если наоборот, папки связываются с ID сообщения, то в нее помещаются файлы которые связываются по ID пользователя.
Ну и третий случай, общая папка (не совсем лучший вариант, если файлов в ней будет много), тогда в эту папку помещается файлы как связанные и по ID сообщения, и по ID пользователя.
Если формируемое имя файла прописывается непосредственно в базу, то могут быть еще варианты.
А у вас как все организовано хранение?
|
Проблема как раз в том, что регистрации нет. Пользователь просто вводит имя и прикрепляет файлы. Но прикрепление файлов и отправка имени происходит в разный момент. Как их связать? Может сессию открыть для каждого посетителя?
На счет самой организации папка с ID сообщения и туда файлы.
|
|
19.01.2016, 17:42
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Yadomaru
|
Проблема как раз в том, что регистрации нет.
|
Это плохо, ибо базу неминуемо ожидает куча мусора в виде дубликатов.
Сообщение от Yadomaru
|
Но прикрепление файлов и отправка имени происходит в разный момент.
|
Это вы так думаете или это действительно так? "Само прикрепление файлов работает через jQuery File Upload, файлы отправляются в папку на сервере без отправки самой формы." еще не означает, что поля контактных данных и поля выбора файлов, это поля различных форм.
|
|
19.01.2016, 17:50
|
Новичок на форуме
|
|
Регистрация: 02.03.2015
Сообщений: 8
|
|
Сообщение от laimas
|
Это плохо, ибо базу неминуемо ожидает куча мусора в виде дубликатов.
Это вы так думаете или это действительно так? "Само прикрепление файлов работает через jQuery File Upload, файлы отправляются в папку на сервере без отправки самой формы." еще не означает, что поля контактных данных и поля выбора файлов, это поля различных форм.
|
Форма одна, но при нажатии "отправить" Имя передается, а файлы нет.
|
|
19.01.2016, 18:06
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Yadomaru
|
Форма одна, но при нажатии "отправить" Имя передается, а файлы нет.
|
Даже так, и как тогда вы получаете файлы?
Вы как проверяете на сервере получение данных этой формой, включая и файлы?
|
|
19.01.2016, 18:16
|
Новичок на форуме
|
|
Регистрация: 02.03.2015
Сообщений: 8
|
|
Сообщение от laimas
|
Даже так, и как тогда вы получаете файлы?
Вы как проверяете на сервере получение данных этой формой, включая и файлы?
|
Файлы загружаются непосредственно при прикреплении скриптом jQuery File Upload. То есть выбрал файл(ы) и они загрузились сразу даже без нажатия на "отправить".
Данные проверяю так: Имя через $_POST, а файлы через $_FILES.
|
|
19.01.2016, 18:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Ну если файлы сами по себе, то дела плохи. Сперва нужно отправить сообщение, чтобы после добавления его в базу получить ID этой записи, и только потом, зная его можно положить их папку сообщения. Как я понял у вас создается папка под каждое такое сообщение (в общем это расточительно)?
Тогда только сессия, в которой загруженные файлы будут хранится до тех пор, пока ни будет получено сообщение, а после его получения переместить файлы из сессии в созданную папку.
|
|
|
|