миниатюра codeigniter не создана с этим кодом - PullRequest
2 голосов
/ 15 августа 2011

Я использую следующий код, но не знаю, почему миниатюры не создаются.

//UPLOAD IMAGE
    //some $config vars for image
    $config['upload_path'] = './images/models';
    $config['allowed_types'] = 'gif|jpg|jpeg|png|tif';
    $config['max_size'] = '0';
    $config['remove_spaces'] = true;
    $config['overwrite'] = false;
    $config['max_width'] = '0';
    $config['max_height'] = '0';

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

    //upload main image
    if(!$this->upload->do_upload('photo')){
        $e = $this->upload->display_errors();
        print_r($e);
    }

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

    //print '<pre>';
    //print_r($image); exit;

    if($image['file_name']){
        $data['photo']  = "images/models/". $image['file_name'];
        $data['raw' ]   = $image['raw_name'];
        $data['ext']    = $image['file_ext'];
    }


    //create new image
    $config0['image_library'] = 'gd2';
    $config0['source_image'] = $image['full_path'];
    $config0['new_image'] = "images/models/"."front". $image['file_name']; // you can assign your image name and location
    $config0['maintain_ratio'] = FALSE;
    $config0['width'] = 320;
    $config0['height'] = 270;

    $this->load->library('image_lib', $config0);
    if ( ! $this->image_lib->resize())
    {
    echo $this->image_lib->display_errors();
    }

    //end of new image



    $config3['image_library'] = 'gd2';
    $config3['source_image'] = $image['full_path'];
    $config3['new_image'] = "images/models/"."main". $image['file_name'];
    $config3['maintain_ratio'] = FALSE;
    $config3['width'] = 800;
    $config3['height'] = 600;

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



    $config4['image_library'] = 'gd2';
    $config4['source_image'] = $image['full_path'];
    $config4['new_image'] = "images/models/"."third". $image['file_name'];
    $config4['maintain_ratio'] = FALSE;
    $config4['width'] = 185;
    $config4['height'] = 125;

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


    //thumbnail creation start
    $config1['image_library'] = 'gd2';
    $config1['source_image'] = $image['full_path'];
    $config1['create_thumb'] = TRUE;
    $config1['maintain_ratio'] = FALSE;
    $config1['width'] = 185;
    $config1['height'] = 125;

    $this->load->library('image_lib', $config1);
    $this->image_lib->initialize($config1);
    if ( ! $this->image_lib->resize())
    {
    echo $this->image_lib->display_errors();
    }

    //THUMBNAIL ENDS

Ответы [ 4 ]

2 голосов
/ 15 августа 2011

Попробуй это. Это почти как у тебя. Пишите ошибки в комментариях.

//UPLOAD IMAGE
//some $config vars for image
$config['upload_path'] = './images/models';
$config['allowed_types'] = 'gif|jpg|jpeg|png|tif';
$config['max_size'] = '0';
$config['remove_spaces'] = true;
$config['overwrite'] = false;
$config['max_width'] = '0';
$config['max_height'] = '0';

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

//upload main image
if(!$this->upload->do_upload('photo')){
    $e = $this->upload->display_errors();
    print_r($e);
}else{
    $image = $this->upload->data();

    //print '<pre>';
    //print_r($image); exit;

    if($image['file_name']){
        $data['photo']  = "images/models/". $image['file_name'];
        $data['raw' ]   = $image['raw_name'];
        $data['ext']    = $image['file_ext'];
    }

    $config1['source_image'] = $image['full_path'];
    $config1['new_image'] = "images/models/"."front". $image['file_name']; // you can assign your image name and location
    $config1['maintain_ratio'] = FALSE;
    $config1['width'] = 320;
    $config1['height'] = 270;

    $this->load->library('image_lib', $config1);
    if ( ! $this->image_lib->resize())
    {
        echo $this->image_lib->display_errors();
        return;
    }

    $config1['new_image'] = "images/models/"."main". $image['file_name'];
    $config1['width'] = 800;
    $config1['height'] = 600;

    $this->image_lib->clear();
    $this->image_lib->initialize($config1);
    if ( ! $this->image_lib->resize())
    {
        echo $this->image_lib->display_errors();
        return;
    }



    $config1['new_image'] = "images/models/"."third". $image['file_name'];
    $config1['width'] = 185;
    $config1['height'] = 125;

    $this->image_lib->clear();
    $this->image_lib->initialize($config1);
    if ( ! $this->image_lib->resize())
    {
        echo $this->image_lib->display_errors();
        return;
    }


    //thumbnail creation start
    unset($config1['new_image']);
    $config1['create_thumb'] = TRUE;

    $this->image_lib->clear();
    $this->image_lib->initialize($config1);
    if ( ! $this->image_lib->resize())
    {
        echo $this->image_lib->display_errors();
        return;
    }
    echo "Ok";
}

//THUMBNAIL ENDS
2 голосов
/ 15 августа 2011

Способ, которым был разработан класс Image Manipulation, заключается в том, что если вы хотите использовать его более одного раза в одном и том же сценарии, вы должны выполнить:

$this->image_lib->clear();

между обрабатываемыми изображениями.

Это удаляет все предыдущие настройки и дает вам чистый лист для следующего кадрирования / поворота / водяного знака / чего угодно ...

0 голосов
/ 15 августа 2011

Эта проблема может быть связана с несоответствием пути создания изображения. Попробуйте использовать константу FCPATH перед URL. Это может помочь ..

0 голосов
/ 15 августа 2011

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

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