在codeigniter中调整不与我合作的图像

时间:2018-03-30 01:49:12

标签: codeigniter

我想在一个函数中的codeigniter中调整图像大小

我调用了Image_lib并在我的控制器上上传了库

images文件夹可以读/写。

那是我的控制者。

public function update(){

    $config['upload_path']="./images/";
    $config['allowed_types']='jpg|jpeg|png';
    $config['encrypt_name']=TRUE;
    $config['max_size']='1024';

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


    if(!$this->upload->do_upload()){
        $this->load->view('settings_v',array(
        'userdata'=>$this->user->userdata(),
        'c_data'=>$this->Settings_m->index(),
        'error'=>$this->upload->display_errors(),
        ));
    } else{
        $image=$this->Settings_m->image(); // get current image to remove it 
        if(!empty($image)){
            $path='images/'.$image;
            unlink($path);
        }
        $config['image_library'] = 'gd2';
        $config['source_image'] = '.images/'.$filename;
        $config['new_image'] = '.images/'.$filename;
        $config['create_thumb'] = TRUE;
        $config['maintain_ratio'] = TRUE;
        $config['width'] = 30;
        $config['height'] = 30;
        $this->load->library('image_lib', $config);
        $this->image_lib->resize();

        $file_data=$this->upload->data();
        $filename=$file_data['file_name'];
        $this->Settings_m->update($filename);
        //redirect('Settings','refresh');
    }

}

谢谢,

1 个答案:

答案 0 :(得分:2)

将'.images /更改为'./images/',在图像lib配置中使用它之前,你从未定义$filename

    $file_data = $this->upload->data();
    $filename = $file_data['file_name'];
    $config['image_library'] = 'gd2';
    $config['source_image'] = './images/' . $filename;
    $config['new_image'] = './images/' . $filename;
    $config['create_thumb'] = TRUE;
    $config['maintain_ratio'] = TRUE;
    $config['width'] = 30;
    $config['height'] = 30;
    $this->load->library('image_lib', $config);
    $this->image_lib->resize();
    $this->Settings_m->update($filename);
    //redirect('Settings','refresh');

此外,如果您只想调整源图像的大小而没有单独调整大小的图像,则应根据文档删除$config['new_image']$config['create_thumb']。否则,只需使用create_thumbnew_image(使用与原始路径/文件名不同的路径/文件名),但不能同时使用两者。

  

有关此偏好的说明:

     

如果上面列出的两个首选项都没有(create_thumb,和   使用new_image),调整大小的方法将改为目标   原始图像进行处理。