【问题标题】:Codeigniter multiple file upload with input array keyCodeigniter 使用输入数组键上传多个文件
【发布时间】:2019-05-18 09:07:34
【问题描述】:

我有两个输入字段如下;

<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 上传两个文件?我已经尝试了一些方法,但我无法做到这一点。

谢谢,

【问题讨论】:

标签: file codeigniter upload


【解决方案1】:

好吧,如果你坚持用你的参数和输入名称保持这样,那么你必须在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';
            }
        }
    }
}

我已经在我的环境中使用您的输入对其进行了测试,它工作正常。

【讨论】:

  • 不客气,兄弟,很高兴它有效..您可以选择它作为正确答案。
猜你喜欢
  • 2020-08-21
  • 2014-09-26
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 2019-07-23
  • 2018-03-19
相关资源
最近更新 更多