dongqie4233 2018-10-29 18:11
浏览 36
已采纳

在Codeigniter中更新两个图像

Recently I find some bug while updating two image at a time. I use if (!empty($_FILES['ngo_logo']['name'])) before first image and elseif (!empty($_FILES['ngo_license_pic']['name'])) before second image.

Here is my full Controller Code:

function editProfile(){

    $ngo_id = $this->profile_model->editNgoProfile();

        /************* File Upload ************/
  if (!empty($_FILES['ngo_logo']['name'])) {


        $config['upload_path'] = './assets/uploads/ngo_logo/';
        $config['allowed_types'] = 'gif|jpg|png|jpeg|pdf|doc|docx|zip|xls';
        $config['overwrite'] = true;
        $config['remove_spaces']=true;
        $config['max_size']='10600';// in KB

        $this->load->library('upload', $config);


        $filetype = $_FILES['ngo_logo']['type'];
        $file_name = $_FILES['ngo_logo']['name'];

        if($filetype == "image/jpg")
                $file_type='jpg';
            else if ($filetype == "image/jpeg")
                $file_type='jpeg';
            else if ($filetype == "image/gif")
                $file_type='gif';
            else if($filetype == "image/jpeg")
                $file_type='jpg';

            else if($filetype == "image/pjpeg")
                $file_type='pjpeg';
            else if($filetype ==  "image/png")
                $file_type='png';

        $_FILES['ngo_logo']['name']=$ngo_id.'.'.$file_type;

        $this->upload->do_upload('ngo_logo');


        $up_dtat = array('ngo_logo' => $_FILES['ngo_logo']['name']);
        $this->db->where('ngo_id',$ngo_id);
        $this->db->update('tbl_ngo_users',$up_dtat);

   }


  elseif (!empty($_FILES['ngo_license_pic']['name'])) {


        $config['upload_path'] = './assets/uploads/ngo_license_pic/';
        $config['allowed_types'] = 'gif|jpg|png|jpeg|pdf|doc|docx|zip|xls';
        $config['overwrite'] = true;
        $config['remove_spaces']=true;
        $config['max_size']='10600';// in KB

        $this->load->library('upload', $config);


        $filetype = $_FILES['ngo_license_pic']['type'];
        $file_name = $_FILES['ngo_license_pic']['name'];

        if($filetype == "image/jpg")
                $file_type='jpg';
            else if ($filetype == "image/jpeg")
                $file_type='jpeg';
            else if ($filetype == "image/gif")
                $file_type='gif';
            else if($filetype == "image/jpeg")
                $file_type='jpg';

            else if($filetype == "image/pjpeg")
                $file_type='pjpeg';
            else if($filetype ==  "image/png")
                $file_type='png';

        $_FILES['ngo_license_pic']['name']=$ngo_id.'.'.$file_type;

        $this->upload->do_upload('ngo_license_pic');


        $up_dtat = array('ngo_license_pic' => $_FILES['ngo_license_pic']['name']);
        $this->db->where('ngo_id',$ngo_id);
        $this->db->update('tbl_ngo_users',$up_dtat);

 }
    redirect('NGO_Profile');

}

My problem is only first image will be update but another will not update.
--> If I upload only one image then it will update and
--> if i upload only first image then first image update
--> in further time if i upload only second image then second image will update only...

I need the proper solution actually what is the main reason for not update two image at a time.

  • 写回答

1条回答 默认 最新

  • dongying195959 2018-10-29 20:30
    关注

    Change elseif (!empty($_FILES['ngo_license_pic']['name'])) { to if(...)

    elseifs only trigger if A. the first if condition is false B. the elseif condition is true.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵