我想在codeigniter中调整上传的图像大小,但它不起作用

时间:2015-11-26 13:05:41

标签: codeigniter

我想在codeigniter中调整上传的图片大小,但它不能使用此代码。图像上传成功但我想将其调整为110x110并显示它!

我的代码在这里

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';
}      
}   
}

2 个答案:

答案 0 :(得分:0)

首先上传原始图像,然后设置配置并上传原始图像,然后调整图像大小。随着说:

$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;
}

此时文件已上传。现在你需要抓住它并调整大小。

// 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();

最后,如果您愿意,可以删除原始图像。

答案 1 :(得分:0)

如果你想要两个图像1>上传图像2>缩略图图像并想要将缩略图图像存储到不同的文件夹,你应该使用$ config ['new_image']并且路径不应该是你的网址,而应该是绝对服务器路径。如果你不知道如何获得绝对服务器路径?你可以在下面看到我的代码。

我得到了解决方案,我的代码在这里

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();                           
}                 
}
}