如何在Codeigniter3中上传多个上传表单元素?

时间:2015-07-23 06:48:39

标签: php codeigniter file-upload

我正在使用多个表单上传元素以 Codeigniter3 表单帮助器创建多个上传图片。 我有4个upload_form来上传数据,如下所示

  1. eng_up_img
  2. kh_up_img
  3. ch_up_img
  4. fr_up_img
  5. 我已经使用这些字段将表单元素的所有不同图像上传到具有图像属性的DB。

    问题我不明白如何将每个表单元素的数据发布到PHP变量以及如何从表单中获取这些字段。

    这是我的表格

    public function upload() {
    
            $this->load->helper(array('form', 'url'));
            $config['upload_path'] = '../assets/img/slide';
            $config['image_library'] = 'gd2';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '1000000';
            $config['max_width'] = '102400';
            $config['max_height'] = '768000';
            $this->load->library('upload', $config);
            $token = $this->security->get_csrf_hash();
    
            $res = FALSE;
            $img_data = array(
                'eng_up_img' => $this->upload->do_upload('eng_up_img'),
                'kh_up_img' => $this->upload->do_upload('kh_up_img'),
                'ch_up_img' => $this->upload->do_upload('ch_up_img'),
                'fr_up_img' => $this->upload->do_upload('fr_up_img'),
            );
            if (!$img_data['eng_up_img'] && !$img_data['kh_up_img'] && !$img_data['ch_up_img'] && !$img_data['fr_up_img']) {
                $res = FALSE;
            } else {
                $eng_up_img = $this->upload->data();
                $kh_up_img = $this->upload->data();
                $ch_up_img = $this->upload->data();
                $fr_up_img = $this->upload->data();
            }
            echo json_encode(array('res' => $res, 'img_pro' => $data, 'token' => $token));
        }
    

    这是控制器功能

    $FILENAME$

    我希望朋友可以帮助我谢谢

1 个答案:

答案 0 :(得分:1)

我认为你最后获得最后一个form_upload的原因是,因为它们都有相同的名称。 尝试像这样更新你的观点:

$arrLanguagePrefix = array("eng","kh","ch","fr");
echo form_open_multipart('', array('id' => 'eng_form')); 

foreach($arrLanguagePrefix AS $value)
{
    $arrData = array
    (
        "id" => $value."_up_img",
        "name" => $value."_up_img"
    );

    echo form_upload($arrData);
}
echo form_close();