CI图像处理类!求生成一大一小两张缩略图的做法
运行后也提示了小图缩略成功,但其实没成功! 代码如下,请指教function do_upload()
{
$today = date('Ymd');
$newday = './uploads/'.$today;
if(!file_exists($newday)){
mkdir($newday,0777);
}
$newname = time();
$config['upload_path']=$newday;
$config['file_name'] = $newname.'.jpg';
$config['allowed_types'] = 'jpg|jpeg';
$config['max_size'] = '1000';
$config['max_width'] = '5000';
$config['max_height'] = '5000';
$this->load->library('upload', $config);
if(!$this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
}
else
{
echo $newday.$newname;
$config['image_library'] = 'gd2';
$config['source_image'] = $newday.'/'.$newname.'.jpg';
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 320;
$config['height'] = 320;
$this->load->library('image_lib', $config);
if(!$this->image_lib->resize()){
echo $this->image_lib->display_errors('<p>','<p>');
}else{
echo "照片大缩略成功!";
$config2['image_library'] = 'gd2';
$config2['source_image'] = $newday.'/'.$newname.'.jpg';
$config2['create_thumb'] = TRUE;
$config2['maintain_ratio'] = TRUE;
$config2['width'] =100;
$config2['height'] = 120;
$this->load->library('image_lib', $config2);
if(!$this->image_lib->resize()){
echo $this->image_lib->display_errors('<p>','<p>');
}else{
echo '小照片缩略成功!';
$uid = $this->session->userdata('uid');
$spname = $newday.'/'.$newname.'_thumb'.'.jpg';
$this->load->model('M_user');
$rs=$this->M_user->photo_insert($uid,1,$spname,1,1,123456,1);
if($rs){
$data = array('upload_data' => $this->upload->data());
$this->load->view('upload_success', $data);
//redirect('LoginC/upload_success2');
}else{
echo '上传失败!';
}
}
}
}
}
看 http://codeigniter.org.cn/forums/thread-4518-1-1.html 本帖最后由 kis 于 2010-9-14 19:56 编辑
Hex 的回答完全正确.
我还是啰嗦一下;
------------------------------------------------------------
$this->load->library('image_lib', $config2);
应该修改成
$this->image_lib->initialize($config2);
因为:CI 的 loader->library() 里的 _ci_load_class 方法会判断是否已加载image_lib,所以 $this->load->library('image_lib', $config2);会中途 中断执行
$config2 没有被初始化。
附:
image_lib 的构造函数的代码如下:
function CI_Image_lib($props = array())
{
if (count($props) > 0)
{
$this->initialize($props);
}
log_message('debug', "Image Lib Class Initialized");
} 谢谢上面的兄台.
我按hex的改了,但现在只生成小缩略图了,大缩略图还是没有 加上
$config['new_image'] = '文件系统路径';
页:
[1]