Мой первый пост так нежный! Я попытался найти это, и есть много похожих сообщений, но я не могу найти ничего такого, как моя проблема, и я был в этом часами! : – /
Я строю систему в 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). Я просто использую его в течение недели, и это отличный инструмент!