PHP - загрузка нескольких файлов - PullRequest
0 голосов
/ 19 октября 2011

Я создаю простую CMS для клиента. Им нужна возможность управлять профилями сотрудников.

Для каждого профиля требуется изображение.

В настоящее время у меня есть форма для добавления сотрудников, и связать загруженное изображение с одной записью просто.

Ниже формы добавления записи у меня есть список существующих записей (и миниатюра изображения). Эти записи печатаются между тегами формы, у меня есть флажок рядом с каждой записью (пометка удалит ее при отправке формы).

Я хочу использовать эту форму также для ОБНОВЛЕНИЯ записей; Сначала происходит удаление, затем $_POST данные анализируются и записи обновляются.

Если с записью не связано изображение, вместо миниатюры печатается тег ввода файла. Поскольку существует переменное количество записей, все теги файлов называются image[], поэтому я легко могу просмотреть их.

Вопрос: как соотнести данные $_FILES с данными $_POST? Нужно ли присваивать каждому входному файлу имя image_<?=$record_id?>, чтобы определить, к какой записи принадлежит файл?

Ответы [ 4 ]

1 голос
/ 19 октября 2011

Ваше решение выглядит хорошо, я бы добавил идентификатор записи в качестве индекса, например:

image[<?=$record_id?>];

Затем вы можете коррелировать по индексу массива

0 голосов
/ 19 октября 2011

Вам нужно будет указать имя каждого файла и получить к нему доступ через $FILES['unique_name'].

0 голосов
/ 19 октября 2011

Используя стандартную нотацию fieldname[], вы не можете контролировать, какие индексы PHP назначает представлениям на стороне сервера в POST / GET / REQUEST / FILES. PHP просто добавит их последовательно, и если в вашей форме будет пробел, он исчезнет, ​​как только данные попадут на сервер.

Вы можете, однако, использовать индексы FORCE, чтобы fieldname[7] и newimage[7] все относились к одному и тому же набору полей в вашей форме.

0 голосов
/ 19 октября 2011

вместо

<input name="image[]">

используйте ассоциативный массив, например:

1005 *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...