2016-11-24 2 views
1

У меня есть проблема с классом CI изображения, изображение не размер ...codeiginter загрузка и изменение размера

, например:

контроллер

private function _do_upload(){ 
    $config['upload_path']  = 'upload/'; 
    $config['allowed_types']  = 'gif|jpg|png'; 
    $config['max_size']   = 1000; //set max size allowed in Kilobyte 
    $config['max_width']   = 1000; // set max width image allowed 
    $config['max_height']   = 1000; // set max height allowed 
    $config['file_name']   = round(microtime(true) * 1000); 

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

    if($this->upload->do_upload('photo')) //upload and validate{ 
     $config2['image_library'] = 'gd2'; 
     $config2['source_image'] = $this->upload->upload_path; 
     $config2['create_thumb'] = TRUE; 
     $config2['maintain_ratio'] = TRUE; 
     $config2['width']   = 450; 
     $config2['height']   = 500; 

     $this->load->library('image_lib', $config2); 

     if(!$this->image_lib->resize()){ 
      $data['inputerror'][] = 'photo'; 
      $data['error_string'][] = 'Upload error: '.$this->upload->display_errors('',''); 
      $data['status'] = FALSE; 
     } 
     return $this->upload->data('file_name'); 
    }else{ 
     $data['inputerror'][] = 'photo'; 
     $data['error_string'][] = 'Upload error: '.$this->upload->display_errors('',''); //show ajax error 
     $data['status'] = FALSE; 
     echo json_encode($data); 
     exit(); 
    } 
} 

Но я не получил ошибку, я не знаете, где ошибка?

ответ

0

Ну у вас есть несколько вопросов ...

1. Вы прокомментировали свое открытие {, которое нарушило бы код.

если ($ this-> upload-> do_upload ('фото')) // загрузить и проверить {

Должно быть

if($this->upload->do_upload('photo')) { //upload and validate 

2. Следующая часть : Если у вас есть ошибка изменения размера, вы ничего не делаете с вашими сообщениями ... Итак ...

 if(!$this->image_lib->resize()){ 
     $data['inputerror'][] = 'photo'; 
     $data['error_string'][] = 'Upload error: '.$this->upload->display_errors('',''); 
     $data['status'] = FALSE; 
    } 

Needs добавленный json_encode как ..

 if(!$this->image_lib->resize()){ 
     $data['inputerror'][] = 'photo'; 
     $data['error_string'][] = 'Upload error: '.$this->upload->display_errors('',''); 
     $data['status'] = FALSE; 
     echo json_encode($data); 
     exit(); 
    } 

В связи с Вашим изменения размера, вы должны указать полное имя файла изображения, а не только путь, по которому «файлы» живой ...

Ваш source_image является Путь туда, куда загружаются файлы. Не Путь/Имя файла изображения, которое вы хотите изменить размер ...

$config2['source_image'] = $this->upload->upload_path; 

Так что, если вы добавите эту строку, которая дает вам полный путь и имя файла и использовать его ...

$file_data = $this->upload->data(); 
$config2['source_image'] = $file_data['full_path']; 

ли которые работают лучше?

+0

Благодарим за ответ, я должен исправить, но фотографии можно загрузить, но не изменить размер, я не знаю, где ошибки других? – Anonymous

+0

спасибо TimBrownlaw моя сеть успешно работает – Anonymous

+0

Добро пожаловать :) Удачи вам. – TimBrownlaw

Смежные вопросы