freefish_yoyo 2012-09-26 17:31:07 3220次浏览 6条回复 0 0 0

几天刚好用到了cthumb这个扩展,数据库中我是以字符串的形式保存了图片的路径。结果在获取图片的扩展名时,出现了一下面的错误,是我图片保存个格式不对吗? [attach]921[/attach]

  • 回复于 2012-09-26 17:50 举报

    把你这个action的代码贴出来看看

  • 回复于 2012-09-27 09:54 举报

    $model里有photo这个属性吗?

  • 回复于 2012-09-27 12:38 举报

    论坛终于好了。嗯。是有photo这个属性的。这个问题已经解决了,不过又出现了一个问题,就是生成缩略图的时候,缩略图的后缀名有问题,变成了像下面的样子“mh_1348720692.gifgif”,不知道是怎么回事

  • 回复于 2012-09-27 12:38 举报

    action 代码

    public function	actionCreate()
    {
        $save_path='upload/';
        $resize_array=array(
            'mw'=>100,
            'mh'=>100,
    
        );
        $model=new User();
        if(isset($_POST['User']))
        {
            $model->attributes=$_POST['User'];
            $upload_image=CUploadedFile::getInstance($model,'photo');
            if(is_object($upload_image) && get_class($upload_image)==='CUploadedFile')
            {
                $ext=$upload_image->extensionName;//上传文件的扩展名
                $filename=time().'.'.$ext;
                $time_path=date('Ymd',time()).'/';
                if(is_dir($save_path.$time_path))
                {
                        $dir=$save_path.$time_path;
                    
                }
                
                else
                {
                
                    $dir=mkdir($save_path.$time_path);
                
                }
                $save_path=$dir;
                $imgurl=$save_path.$filename;//上传文件保存路径
                $model->photo=$imgurl;
                if($model->save())
                {
                    
                    $upload_image->saveAs($imgurl);
                
                }
                
                $im=NULL;
                $imagetype=strtolower($ext);
                {
                    if($imagetype=='gif')
                    {
                
                        $im=imagecreatefromgif($imgurl);
                
                    }
                
                    elseif($imagetype=='jpg')
                    {
                
                    $im=imagecreatefromjpeg($imgurl);
                        
                    }
                
                    elseif($imagetype=='png')
                    {
                
                        $im=imagecreatefrompng($imgurl);
                    }
            
            
                }
            
                foreach($resize_array as $k=>$v)
                {
                    $mw=$v['mw'];
                    $mh=$v['mh'];
                    $thumb_file_name=$save_path.$k.'_'.$filename;
                }
            
                CThumb::resizeImage($im,$mw,$mh,$thumb_file_name,$ext);
    
            }
    
    
    
        }
    
        $this->render('create',array('model'=>$model));	
    }
    
  • 回复于 2012-09-28 01:14 举报

    解决啦,谢谢各位

  • 回复于 2012-12-07 09:55 举报

    这样获取后缀最靠谱

    //获取图片后缀
    $imagetype = strtolower(substr($image,(strrpos($image, '.')+1)));
    
您需要登录后才可以回复。登录 | 立即注册