Codeigniter使用输入数组键上传多个文件



我有两个输入字段,如下所示;

<input type="file" name="datainfo[site_logo]" class="custom-file-input" id="site_logo">
<input type="file" name="datainfo[site_fav]" class="custom-file-input" id="site_fav">

如何使用foreach上传两个文件?我试过几种方法,但都做不到。

谢谢,

好的,如果你坚持用参数和输入名称保持原样,那么你必须在do_upload():之前重组$_FILES数组

public function upload()
{
$count = count($_FILES['datainfo']['name']);
for ($i=0; $i < $count; $i++)
{
foreach ($_FILES['datainfo'] as $key1 => $value1)
{
foreach ($value1 as $key2 => $value2)
{
$files[$key2][$key1] = $value2;
}
}
}
$_FILES = $files;
$config['upload_path'] = FCPATH.'uploads/';
$config['allowed_types'] = 'gif|jpg|jpeg|png';
$config['max_size'] = '2048';
$config['max_width'] = '1920';
$config['max_height'] = '1280';
$this->load->library('upload', $config);
foreach ($_FILES as $fieldname => $fileObject)
{
if (!empty($fileObject['name']))
{
$this->upload->initialize($config);
if (!$this->upload->do_upload($fieldname))
{
$errors = $this->upload->display_errors();
}
else
{
$success = 'Success';
}
}
}
}

我已经在我的环境中使用您的输入进行了测试,它运行良好。

最新更新