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.

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

报告相同问题?