uchome现在很多论坛都是在使用该开源程序,其中上传头像模块很是好使,下面作者就使用网上有的分离出来uchome的avatar上传插件进行方法整合。 首先是将下载的插件包放到项目中:(这边先废话下,采用的是yii框架进行整合的,本来想放进yii的扩展包里面的,但
uchome现在很多论坛都是在使用该开源程序,其中上传头像模块很是好使,下面作者就使用网上有的分离出来uchome的avatar上传插件进行方法整合。
首先是将下载的插件包放到项目中:(这边先废话下,采用的是yii框架进行整合的,本来想放进yii的扩展包里面的,但是测试后发现不得行,就放到项目中进行整合了。)
1、将下载下来的插件包放入如下位置:
2、定义配置下载包中的配置文件,配置信息要按照个人的去进行配置了,作者的配置信息如下:configs.global.php
php error_reporting(7); @header(content-type: text/html; charset=utf-8); session_cache_limiter('public, must-revalidate'); date_default_timezone_set('prc'); /* |--------------------------------------------------------------- | php error reporting level |--------------------------------------------------------------- */ // error_reporting(e_all); define('uc_api', 'http://'.$_server['http_host'].'/avatar'); define('uc_api_exec','http://'.$_server['http_host'].'/avatar/index.php');//执行存储操作的文件 define('uc_dataurl', uc_api.'/data'); define('uc_datadir', 'data/');//图片存放相对地址?>
重要的是下面4个define里面的配置信息。
3、在yii的controller.php基类中增加2个方法:
1.第一个方法是用来初始化页面头像和flash上传插件的:
/** * 整合uchome分离出来的头像上传插件 * @param $uid 程序中用户的id int类型 * @return array('avatarurl','flashurl'); */public function avatar($uid){ $avatarpath = yii::app() -> request ->baseurl.'/avatar/';//获取ucavatar插件引入包路径 require_once($avatarpath.'/configs.global.php');//引入ucavatar配置文件 require_once($avatarpath.'/avatar.php');//引入ucavatar核心类 $objavatar = new avatar(); $personavatarurl=$this->getavatar($uid);//获取用户头像 $uc_avatarflash = $objavatar->uc_avatar($uid, (empty($_sconfig['avatarreal'])?'virtual':'real'));//获取上传头像flash插件地址 return array('personavatarurl'=>$personavatarurl,'avatarflashurl'=>$uc_avatarflash);}
2.第二个方法是用来获取不同规格的头像路径的:
/** * 获取用户上传的头像 * @param $uid * @param $size 值为:small、middle、big * @return string avatar url * @example $size 默认获取big大图 */ public function getavatar($uid,$size='big'){ $uid = sprintf('%09d', $uid); $dir1 = substr($uid, 0, 3); $dir2 = substr($uid, 3, 2); $dir3 = substr($uid, 5, 2); //获取头像文件在系统中的绝对位置 $avatarurl=$_server['document_root'].'/avatar/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).'_avatar_'.$size.'.jpg'; //检测是否存在有上传头像 if (file_exists($avatarurl)){//有,输出头像的url地址 return 'http://'.$_server['http_host'].'/avatar/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).'_avatar_'.$size.'.jpg'; }else{//无,输出默认头像地址 return 'http://'.$_server['http_host'].'/avatar/images/noavatar_'.$size.'.gif'; } }
到此整合uchome的头像上传插件就基本完成了,下面进行测试,测试代码如下:
$avatar=$this->avatar(1000);$pic=$avatar['personavatarurl'];$avatarflash =$avatar['avatarflashurl'];
前台页面调用的测试信息如下:
未上传头像时候的页面:
上传头像后的页面展示效果如下:
点击完成按钮后就完成了头像的设置。
到此整合uchome的头像上传插件就完成了。
插件上传地址:http://download.csdn.net/detail/zhuzuoer/6833843
本文由作者在 http://www.cnblogs.com/ez1989/ 博客园上首发。