У меня есть форма, которая позволяет пользователю добавлять столько форм загрузки, сколько они хотят. Итак, изначально есть один, и вы можете нажать «Добавить еще», чтобы ... добавить больше. Имеет смысл. Каждый вход выглядит так:
<input type="file" name="userfile[]" id="userfile[]">
Но когда вы загружаете более одного файла, загружается только первый файл. Ниже мой PHP. Я использую CodeIgniter и библиотеку загрузки файлов.
$dir = random_string('alnum', 10);
mkdir('/Applications/MAMP/htdocs/extras/uploads/temp/'.$dir);
$this->load->library('upload');
$error = 0;
for ($i = 0; $i < count($_FILES['userfile']['name']); $i++):
$_FILES['userfile']['name'] = $_FILES['userfile']['name'][$i];
$_FILES['userfile']['type'] = $_FILES['userfile']['type'][$i];
$_FILES['userfile']['tmp_name'] = $_FILES['userfile']['tmp_name'][$i];
$_FILES['userfile']['error'] = $_FILES['userfile']['error'][$i];
$_FILES['userfile']['size'] = $_FILES['userfile']['size'][$i];
$config['upload_path'] = '/Applications/MAMP/htdocs/extras/uploads/temp/'.$dir;
$config['allowed_types'] = 'jpg|jpeg|gif|png';
$this->upload->initialize($config);
if ($this->upload->do_upload('userfile')):
$error += 0;
else:
$error += 1;
endif;
endfor;
if ($error > 0):
$error = array('error' => $this->upload->display_errors());
print_r($error);
else:
$data = array('upload_data' => $this->upload->data());
print_r($data);
endif;
Если я добавлю echo count($_FILES['userfile']['name'];
перед циклом for, он правильно отобразит количество файлов. Если я использую его после цикла for, он неправильно отображает 1.
Есть идеи, что я здесь не так делаю?