我有一个表单,允许用户添加任意数量的上传表单。所以最初有一个,你可以点击“添加更多”以添加更多内容。说得通。每个输入如下:多个上传按预期工作
<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;
如果我加入前的for循环的echo count($_FILES['userfile']['name'];
,它正确地显示文件的数量。如果我在for循环后使用它,它不正确地显示1.
任何想法我在做什么错在这里?
谢谢,这工作。 – dallen 2011-05-19 05:44:48