Проблема! Вы должны указать исходное изображение в ваших настройках - PullRequest
0 голосов
/ 14 июля 2011

Привет всем. Я пытаюсь загрузить изображение с codeigniter на мой локальный хост (WAMP), но возникли две проблемы:

Вы должны указать исходное изображение в своих настройках.

Ваш серверне поддерживает функцию GD, необходимую для обработки этого типа изображения.

Я пытался не исправить это, но безрезультатно

Вот мой код:

class Upload_mod extends CI_Model{

  var $gallery_path;
  var $gallery_path_url;

  function index(){
    parent::__construct();
    $this->gallery_path = realpath(APPPATH . '../uploads');
    $this->gallery_path_url = base_url().'uploads/';
  }

  function do_upload() {
    $config = array(
      'allowed_types' => 'jpg|jpeg|gif|png',
      'upload_path'   => $this->gallery_path);

    $this->load->library('upload');
    $this->upload->initialize($config);
    $this->upload->do_upload();
    $image_data = $this->upload->data();
    print_r($image_data);

    if ( ! $this->upload->do_upload())
    {
      $error = array('error' => $this->upload->display_errors());
      gd_info();
      echo $error;
    }    

    $config['source_image'] = $image_data['full_path'];
    $config['new_image'] = $this->gallery_path . '/thumbs';
    $config['maintain_ratio'] = TRUE;
    $config['width'] = 75;
    $config['height'] = 50;

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

    if ( ! $this->image_lib->resize())
    {
      echo $this->image_lib->display_errors();
    }

  }
}

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Я предполагаю здесь, но я думаю, что проблема в том, что вы звоните $this->image_lib->resize() дважды, но конфигурация второго очищается после того, как вы запустите первый - поэтому он не находит файл, и это вызывает вторая ошибка «этот тип изображения», вероятно, имеет значение NULL или что-то в этом роде. Вы также проверяете ошибки только во втором вызове, так что первый может очень хорошо работать.

Попробуйте это изменение и посмотрите, поможет ли оно:

$this->load->library('image_lib');
$this->image_lib->initialize($config);
// $this->image_lib->resize(); Remove this call to resize()

if ( ! $this->image_lib->resize())
{
  echo $this->image_lib->display_errors();
}

Еще один способ сделать это:

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

if ( ! $success)
{
  echo $this->image_lib->display_errors();
}

В любом случае, и даже если это не единственная проблема, вам следует звонить resize() только один раз.

0 голосов
/ 10 декабря 2013

В php.ini Вы должны изменить эту строку upload_max_filesize = 2 МБ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...