Загрузите несколько файлов на сервер и

Мой первый пост так нежный! Я попытался найти это, и есть много похожих сообщений, но я не могу найти ничего такого, как моя проблема, и я был в этом часами! : – /

Я строю систему в PHP (5.3) и MySQL, и часть функциональности заключается в том, что пользователю необходимо загрузить некоторые файлы на основе некоторых предыдущих выборов. Пример формы выглядит следующим образом:

<form action="" method="post" enctype="multipart/form-data" id="uploadFiles"> <p> <label for="file1">Upload file 1:</label> <input type="file" name="file1" id="image"> </p> <p> <label for="file2">Upload file 2:</label> <input type="file" name="file2" id="image2"> </p> <p> <input type="submit" name="upload" id="upload" value="Upload"> </p> </form> 

В этом случае пользователю необходимо загрузить два разных документа. Все это работает для меня, и я могу сохранить 2 файла на сервере, а затем вставить 2 записи в таблицу в базе данных с именем файла, типом файла (pdf, jpg) и идентификатором пользователя и т. Д., Перейдя через «$ _FILES» в мой класс загрузки.

Тем не менее, я пытаюсь сделать так, чтобы добавленный атрибут name <input name="foo"> в вставленную строку, чтобы «File 1» имел «file1» в столбце document_type, а «File 2» имел бы «file2» ». Таким образом, я могу выполнить базовую проверку в MySQL, чтобы узнать, загрузил ли пользователь соответствующие файлы.

Чтобы перейти к преследованию, существует ли способ присвоить или связать атрибут «имя» INPUT с каждым файлом в $ _FILES в моем классе «Загрузить», чтобы когда при переходе через $ _FILES я получаю уникальный document_type?

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация о моей настройке.

 foreach ($_FILES as $inputName => $uploadedFile) { echo $inputName, ':', PHP_EOL; print_r($uploadedFile); } 

Вывод

 file1: Array ( 'name' => ... 'tmp_name' => ... ... ) file2: Array ( 'name' => ... 'tmp_name' => ... ... ) 

Имя файла INPUT должно быть ключом строки в массиве $_FILES . Например, в вашем примере массив $ _FILES должен иметь две строки, на которые можно ссылаться так: $_FILES['file1'] и $_FILES['file2'] . Поэтому, когда вы перебираете массив, просто найдите это значение ключа и вставьте его в строку.

Проще всего не иметь разных имен для входов, но одинаковых имен, написанных как массивы, например name = "file []".

Я считаю, что на этот вопрос был дан ответ, но для будущего предложения, если вам нужна дополнительная информация о параметрах прохождения в CI, вы можете использовать Xdebug (я использую в тандеме с Netbeans). Я просто использую его в течение недели, и это отличный инструмент!