2017-01-05 4 views
0

приведенный ниже код обновляет базу данных, но не загружает изображение, я проверял права доступа к папке. Заранее спасибо. У меня есть обновление, чтобы показать всю функцию. Вся функция работает, это только загрузка, которая не работает.Обновление базы данных Codeigniter, но не загрузка изображения

public function update_company() 
{ 

    $distributor = $this->aauth->get_user(); 
    $distributor_id = $distributor->distributor_id; 

    $company_name = $this->input->post("company_name"); 
    $contact_name = $this->input->post("contact_name"); 
    $number = $this->input->post("number"); 
    $email = $this->input->post("email"); 
    $address = $this->input->post("address"); 

    if(empty($company_name)) 
    { 

     $message = '<p style="color: red;">Please enter the company name!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 

    } 

    else if(empty($contact_name)) 
    { 

     $message = '<p style="color: red;">Please enter the contact name!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 

    } 

    else if(empty($number)) 
    { 

     $message = '<p style="color: red;">Please enter the phone number!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 

    } 

    else if(empty($email)) 
    { 

     $message = '<p style="color: red;">Please enter the email address!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 

    } 

    else if(empty($address)) 
    { 

     $message = '<p style="color: red;">Please enter the address!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 
    } 

    else if (strlen($company_name) < 2) 
    { 

     $message = '<p style="color: red;">The length of the company name is too short!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 

    } 

    else if (strlen($contact_name) < 2) 
    { 

     $message = '<p style="color: red;">The length of the contact name is too short!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 

    } 

    else if (strlen($number) < 9) 
    { 

     $message = '<p style="color: red;">The length of the phone number is too short!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 

    } 

    else if (strlen($address) < 2) 
    { 

     $message = '<p style="color: red;">The length of the address is too short!</p> <br />'; 
     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
     return; 

    } 

    else 
    { 
     $this->load->library('upload'); 

     if ($_FILES['userfile']['size'] > 0) 
     { 
      $this->upload->initialize(array( 
       "upload_path" => base_url().'/assets/uploads/distributors/', 
       "overwrite" => FALSE, 
       "max_filename" => 250, 
       "encrypt_name" => TRUE, 
       "remove_spaces" => TRUE, 
       "allowed_types" => "gif|jpg|png|jpeg|", 
       "max_size" => 500, 
       "xss_clean" => TRUE, 
       "max_width" => 600, 
       "max_height" => 150 
      )); 

      if (!$this->upload->do_upload('picture')) { 
       $message = 'Failed to upload the image'; 
      } 

      $data = $this->upload->data(); 

      $picture = $data['file_name']; 
     } 
     else 
     { 
      $picture = 'default.jpg'; 
     } 

     $message = '<p style="color: green;">You succesfully updated your company profile</p> <br />'; 
     $this->customer_model->update_distributor($distributor_id, array(
      "company_name" => $company_name, 
      "contact_name" => $contact_name, 
      "number" => $number, 
      "email" => $email, 
      "address" => $address, 
      "picture" => $picture  
      ) 
     ); 

     $this->session->set_flashdata('message', $message); 
     redirect('/your_profile/company'); 
    } 
} 
+0

этот код не обновляет базу данных. а также не создает форму «загрузить» ... –

+0

@KraangPrime Я загрузил библиотеку загрузки выше этого кода, и этот код работал для меня раньше. Его фрагмент, меняя его – Stephen

+1

@cfnerd проблема кажется ошибкой codeigniter 2 при загрузке, я все еще охочу за рабочим решением, вы можете проверить ответы на 2 ответа, я ценю помощь. – Stephen

ответ

0

Изображение не загружает из-за неправильный путем ...

Так

"upload_path" => './assets/uploads/users' 

Изменение в

"upload_path" => './assets/uploads/users/' 

Лучшим способом для управления путем UPLOADING, это использовать от base_url() от загрузки url helper.

+0

Можно было бы подумать, что использование фреймворка позаботится о глупости, как о пропавшем конце '/' в именах путей. –

+0

Брат «программирование глупо», поэтому мы. –

+0

@ Stephen вы получаете какие-либо другие ошибки? –

0

Первый ваш путь недействителен. Попробуйте исправить путь, предложенный @Hikmat Sijapati. Далее вы не проверяете, какая фактическая ошибка наступает. Попытайтесь проверить ошибки, используя $ this-> upload-> display_errors(), если файл не загружается.

+0

Я использую CI 2, получил эту ошибку, Тип файла вы пытаетесь загрузить не разрешено. – Stephen

+0

'file_name' => string 'customer.jpg' (length = 12) 'file_type' => string 'image/jpeg' (length = 10) 'file_path' => string 'C:/wamp64/www/app/assets/uploads/distributors/'(length = 50) ' full_path '=> string' C: /wamp64/www/app/assets/uploads/distributors/customer.jpg '(length = 62) ' raw_name '= > string 'customer' (length = 8) 'orig_name' => string '' (length = 0) 'client_name' => string 'customer.jpg' (length = 12) 'file_ext' => string '. JPG»(длина = 4) 'file_size' => Int 24793 'is_image' => булевой правда – Stephen

+0

кажется CI-ошибкой – Stephen