Получение проблемы с изображением при обновлении записей в CodeIgniter - PullRequest
0 голосов
/ 28 сентября 2018

Я использую CodeIgniter.У меня есть форма и поля first_name, middle_name, last_name, profile_pic.Я могу вставить данные в базу данных.

Например, я добавил данные

first_name:xyz
middle_name:poiu
last_name:wertfg
profile_pic:abcvd.png

Теперь я нахожусь на странице редактирования, я получаю все данные из базы данных и отображаюна странице редактирования.Я должен обновить записи.Поэтому я добавил

first_name:12kjh
middle_name:12lkiuy
last_name:96lkjhg

Примечание: : я не добавил изображение.

У меня проблема с profile_pic.Profile_pic также обновляет и получает пустую в базе данных.

Я должен проверить, есть ли уже изображение в profile_pic.Если да, тогда обновите то же имя, если нет, затем добавьте новое изображение или отправьте пустое, если пользователь не добавляет изображение.

Какое условие я должен использовать? Контроллер

    if ($this->form_validation->run() == FALSE)
            { 
    //some validation error code
            } else {
//Get Last Image Name
        $get_image_name = $this->List_model->getImageName($id);
      echo $get_image_name //getting image name


            $config=[
                    'upload_path'   =>'./uploads/images',
                    'allowed_types' =>'gif|jpg|png|jpeg',
                    'file_name'     =>uniqid().time().date("dmy")
                    ]; 
                    $this->load->library('upload', $config);
                    if ($this->upload->do_upload('profile_pic'))
                     {
                      $profile_pic_set = $this->upload->data('file_name');
                     }
                     else{
                           $profile_pic_set = "";
                        }
                $updateData= array(
                'first_name'    => trim($this->input->post('first_name')),
                'middle_name'   => trim($this->input->post('middle_name')),
                'last_name'     => trim($this->input->post('last_name')),
                'profile_pic'   => $profile_pic_set,
            );

               $secure_updateData = $this->security->xss_clean($updateData);
               if($secure_updateData)
                    {
                        $this->db->where('member_id', $id);
                        $this->db->update('members', $secure_updateData);

                $response['error'] = true;
                $response['msg']   = "Member Successfully Saved";
                   echo json_encode($response);
                    }else{
                        alert("Sometning wrong! please check the internet connection and try again");
                    }          
            }

1 Ответ

0 голосов
/ 28 сентября 2018

Сначала вам нужно проверить обновленные данные, убедиться, что файл есть или нет

$updateData= array(
        'first_name'    => trim($this->input->post('first_name')),
        'middle_name'   => trim($this->input->post('middle_name')),
        'last_name'     => trim($this->input->post('last_name')),
        'profile_pic'   => '',  
);
if(!file_exists($_FILES['profile_pic']['tmp_name'])) {
   unset($updateData['profile_pic']);
}else{
    $config=[
           'upload_path'   =>'./uploads/images',
           'allowed_types' =>'gif|jpg|png|jpeg',
           'file_name'     =>uniqid().time().date("dmy")
           ]; 
     $this->load->library('upload', $config);
     if ($this->upload->do_upload('profile_pic')){
          $updateData['profile_pic_set'] = $this->upload->data('file_name');
     }else{
          $updateData['profile_pic_set'] = "";
     } 
}
    //UPDATE YOUR DATA HERE
$secure_updateData = $this->security->xss_clean($updateData);
if($secure_updateData){
   $this->db->where('member_id', $id);
   $this->db->update('members', $secure_updateData);
   $response['error'] = true;
   $response['msg']   = "Member Successfully Saved";
   echo json_encode($response);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...