2015-05-18 3 views
0

Я пытаюсь изменить размер предварительно загруженных изображений, а затем отправить их на другой сервер с FTP, но он, похоже, не работает. Загрузка работает нормально, ftp также работает нормально, но всякий раз, когда я загружаю изображение и проверяю размер, он точно такой же, как и загруженный файл.Загрузка и изменение размера файла Codeigniter

Это мой контроллер:

if ($this->upload->do_upload()) 
     { 
      $data = $this->upload->data(); 
      $image = $data['file_name']; 

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

      $config['image_library'] = 'gd2'; 
      $config['source_image'] = './uploads/devices/'.$image; 
      $config['maintain_ratio'] = TRUE; 
      $config['width'] = 400; 
      $config['height'] = 300; 

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

      $localPath = './uploads/devices/'.$image; 
      $remotePath = 'webspace/httpdocs/uploads/devices/'.$image; 

      $this->load->library('ftp'); 
      $config['hostname'] = ''; 
      $config['username'] = ''; 
      $config['password'] = ''; 
      $config['port']  = 21; 
      $config['passive'] = TRUE; 
      $this->ftp->connect($config); 
      $this->ftp->upload($localPath, $remotePath); 
      $this->ftp->close(); 
     } 

То, что я хочу достичь, это загрузить изображение, изменить размер и заменить его и загрузить уменьшенное изображение после этого.

Справка очень ценится!

+0

набор log_threshold 4 в конфигурации, проверьте журналы, чтобы увидеть, что происходит – Vladimir

+0

@ Ara, я сделал это, но папка моих журналов пуста. Я удалил изображения и продукт и попробовал их повторное добавление, но журнал остается пустым. – killstreet

+0

Вы установили права доступа к журналам на 777 (читать и писать для всех)? – Vladimir

ответ

0

Final Edit:

Используется инициализацию передать конфиги вместо передачи их непосредственно в грузозахватные> Библиотека:

if ($this->upload->do_upload()) 
    { 
     $data = $this->upload->data(); 
     $image = $data['file_name']; 

     $config['image_library'] = 'gd2'; 
     $config['source_image'] = './uploads/devices/'.$image; 
     $config['maintain_ratio'] = TRUE; 
     $config['width'] = 400; 
     $config['height'] = 300; 

     $this->load->library('image_lib'); 
     $this->image_lib->initialize($config); 

     $this->image_lib->resize(); 

     $localPath = './uploads/devices/'.$image; 
     $remotePath = 'webspace/httpdocs/uploads/devices/'.$image; 

     $this->load->library('ftp'); 
     $config['hostname'] = ''; 
     $config['username'] = ''; 
     $config['password'] = ''; 
     $config['port']  = 21; 
     $config['passive'] = TRUE; 
     $this->ftp->connect($config); 
     $this->ftp->upload($localPath, $remotePath); 
     $this->ftp->close(); 
    } 
+0

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

+0

Это, похоже, устранило мою проблему, я полагаю, что проблема заключалась в том, что мне пришлось добавить: $ this-> image_lib-> initialize ($ config); Я не собираюсь загружать библиотеку внутри моей конструкции, так как там есть только 2 функции, которые требуют ее. – killstreet

+0

Мне все еще интересно, как он исправлен, потому что насколько я знаю $ this-> image_lib-> clear(); используется только внутри цикла, который может иметь разные значения, а $ this-> image_lib-> initialize ($ config) должен быть таким же, как $ this-> load-> library ('image_lib', $ config); если я прав? – killstreet

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