I want to resize uploaded image in codeigniter but it is not working

大憨熊 提交于 2020-01-15 11:17:52

问题


I want to resize uploaded image in codeigniter but it is not working with this code. Image uploading successfully but I want to resize it to 110x110 and display it !

my code is here

class Upload_photo extends CI_Controller{
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));           
}
public function index(){    
session_start();
$u = $_SESSION['username'];
$config['upload_path'] = 'user/'.$u.'/'.$filename; 
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '30000';
$config['max_width']  = '1024';
$config['max_height']  = '768';              
$this->load->library('upload',$config);   
if(!$this->upload->do_upload('file1'))
{
echo "Error". $this->upload->display_errors();

}
else {

$config['image_library'] = 'GD2';
$config['source_image'] = $config['upload_path'];
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 110;
$config['height'] = 110;

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

$this->image_lib->resize();
echo 'Photo Uploaded Successfully';
}      
}   
}

回答1:


First you upload the original image so set the configs and upload the original image, then you resize the image. With that said:

$fullPath                = 'user/' . $u . '/';

$config['upload_path']   = $fullPath;
$config['file_name']     = 'theNameofFile';
$config['allowed_types'] = 'jpg|png|bmp';
$config['max_size']      = '30000';
$config['overwrite']     = FALSE;
$config['max_width']     = '1024';
$config['max_height']    = '768'; 

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

if($this->upload->do_upload('file1') == FALSE)
{
   echo "Error:" . $this->upload->display_errors();
   return;
}

At this point the the file was uploaded. Now you need to grab it and resize.

// Reset
$config = array();

$config['image_library']    = 'gd2';
$config['source_image']     = $fullPath . $this->upload->data()['file_name'];
$config['create_thumb']     = FALSE;
$config['maintain_ratio']   = TRUE;
$config['width']            = 100;
$config['height']           = 100;  

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

Finally, if you wish to, you can delete the original image.




回答2:


If you want both images 1>uploded image 2>Thumbnail Image and want to store Thumbnail image to different folder you should use $config['new_image'] and path should not your url but should be absolute server path. If you don't know how to get absolute server path ? you can see my code below.

I got the solution, my code is here

class Upload_photo extends CI_Controller{
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url')); 
}
public function index(){
session_start();
$u = $_SESSION['username'];      
$config['upload_path'] = 'user/'.$u;         
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '30000';
$config['max_width']  = '1024';
$config['max_height']  = '768';              

$this->load->library('upload',$config);  
$filename = $_FILES['file1']['name'];
//echo $filename;     
//echo $source;
if(!$this->upload->do_upload('file1'))
{
echo "Error". $this->upload->display_errors();
return;           
}                        
$config = array();
$config['image_library'] = 'gd2';
$config['source_image']  = 'user/'.$u.'/'.$filename ;                
$config['new_image']= FCPATH . 'user/'.$u.'/Thumb/';
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = FALSE;
$config['width'] = 110;
$config['height'] = 110;                             
$this->load->library('image_lib',$config);                   
if(!$this->image_lib->resize())
{
echo $this->image_lib->display_errors();                           
}                 
}
}


来源:https://stackoverflow.com/questions/33939503/i-want-to-resize-uploaded-image-in-codeigniter-but-it-is-not-working

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!