您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcms用户修改头像的方法
岑誉胜2025-05-23phpcms教程已有人查阅
导读做的项目用户的头像是存在ucenter里面,phpcms通过phpsso这个单点登录系统? 具体的我也不清楚,phpcms自带的v9_member表里没有存放用户头像的字段,如果需要修改
做的项目用户的头像是存在ucenter里面,phpcms通过phpsso这个单点登录系统? 具体的我也不清楚,phpcms自带的v9_member表里没有存放用户头像的字段,如果需要修改,就要修改ucenter里的头像,在phpcms里读取用户头像,也需要phpsso,通过它来链接ucenter 从而获取头像。
那么怎么通过在phpcms的控制器里,可以修改用户头像呢。
首先分为两个部分:1.上传头像,并且保存。2.将保存的头像生成缩略图,并且在指定位置生成缩略图。
生成的缩略图以后,上传的头像就没有用了,可以删除,生成的缩略图就用来当头像显示(很马赛克)
代码如下:
1.文件上传函数saveimage,2.编辑个人资料函数edit_myself()(在这里要修改头像),3.在指定位置生成缩略图do_upload_avatar() 返回值是缩略图的路径,4.初始化phpsso
那么怎么通过在phpcms的控制器里,可以修改用户头像呢。
首先分为两个部分:1.上传头像,并且保存。2.将保存的头像生成缩略图,并且在指定位置生成缩略图。
生成的缩略图以后,上传的头像就没有用了,可以删除,生成的缩略图就用来当头像显示(很马赛克)
代码如下:
1.文件上传函数saveimage,2.编辑个人资料函数edit_myself()(在这里要修改头像),3.在指定位置生成缩略图do_upload_avatar() 返回值是缩略图的路径,4.初始化phpsso
/* 文件上传
* @param type $file $_FILES['image']
* @param int $max_file_size 上传文件大小限制, 单位BYTE
* @param string $img_folder 上传文件路径
* @param int $imgpreview 是否生成预览图(1为生成,其他为不生成);
* @param type $imgpreviewsize 缩略图比例
* @return string 图片路径
*
*/
public function saveimage($file, $max_file_size = 500000, $img_folder = "uploadfile/", $imgpreview = 0, $imgpreviewsize = "1/3") { //上传头像并保存,为更改个人资料里的头像做准备
//图片扩展名设置
$uptypes = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif', 'image/bmp');
//$file1 = $_FILES["image1"][tmp_name];//临时文件
$filename = $file["tmp_name"];
$pinfo = pathinfo($file["name"]); //array
$ftype = $pinfo['extension']; //文件扩展名
// var_dump($ftype);exit;
if (!is_uploaded_file($file["tmp_name"])) {//是否存在文件
echo "图片不存在!";
exit;
}
// $file = $_FILES["image1"];
// if ($max_file_size < $file["size"]) {//检查文件大小
// echo "文件太大!";
// exit;
// }
if (!in_array($file["type"], $uptypes)) {//检查文件类型
echo "文件类型不符!" . $file["type"];
exit;
}
if (!file_exists($img_folder)) {
mkdir($img_folder);
}
$img = $img_folder . time() .rand(1,100). "." . $ftype; //图片路径加图片名 有了 时间戳和随机数 所以就不必验证文件名了,如果还能有重复的,我也很无奈啊。
// if (file_exists($img)) {
// echo "同名文件已经存在了";
// exit;
// }
if (!move_uploaded_file($filename, $img)) {
echo "移动文件出错";
exit;
}
// echo $img;exit;
return $img;
}
public function edit_myself(){ //编辑个人资料 用到上传的头像
$userid = param::get_cookie('_userid');
$username=$_POST['username'];
$this->mem = pc_base::load_model('member_model');
$res=$this->mem->select(array('userid'=>$userid),"phpssouid");
$phpssouid=$res[0]['phpssouid'];
$avator=get_memberavatar($phpssouid);
//var_dump($avator);exit;
// echo "<pre>";
// var_dump($_POST);
// echo "<br>";
// var_dump($_FILES);exit;
//var_dump($res_save);exit; //uploadimg/1494923496.jpg
if( $_FILES['avator']['name']!='' ){
$res_save=$this->saveimage($_FILES['avator']);
$ava = $this->do_upload_avatar($phpssouid,$res_save); //保存头像
}
//var_dump($ava);exit;
if ($username) {
$mem = $this->mem->update(array('nickname'=>$username),array('userid'=>$userid));
}
$this->personal();
}
private function do_upload_avatar($phpssouid,$avatarurl){ //将上传的头像保存是phpsso的索洛图文件夹,并生成缩略图
//echo " --1-----1";exit;
// 处理文件夹 开始
//根据用户id给文件夹起名字
$dir1 = ceil($phpssouid / 10000);
$dir2 = ceil($phpssouid % 10000 / 1000);
//创建图片存储文件夹
//此处硬编码,图片强制存储到sso中
$avatarfile = PHPCMS_PATH.'phpsso_server/uploadfile/avatar/';
$dir = $avatarfile.$dir1.'/'.$dir2.'/'.$phpssouid.'/';
$avatar_url = APP_PATH . 'phpsso_server/uploadfile/avatar/'.$dir1.'/'.$dir2.'/'.$phpssouid.'/';
// echo $avatarfile; D:\workspace\project\shaimobao\phpsso_server/uploadfile/avatar/
// echo "-----------";
// echo $dir; D:\workspace\project\shaimobao\phpsso_server/uploadfile/avatar/3/1/20750/
// echo "--------";
// echo $avatar_url; http:// .cms.localhost/phpsso_server/uploadfile/avatar/3/1/20750/
// exit;
if(!file_exists($dir)) { //根据id创建文件夹
mkdir($dir, 0777, true);
}
//处理文件夹 end
$arr_url = parse_url($avatarurl);
// echo 1111;
// var_dump( $arr_url);exit; // path 'uploadimg/1494923821.jpg
$filename = substr($arr_url['path'],0,1)=='/'?substr($arr_url['path'],1):$arr_url['path'];
$filename = substr($arr_url['path'],0,1)=='\\'?substr($arr_url['path'],1):$arr_url['path'];
// echo $filename;exit; // uploadimg/1494923821.jpg
$filename = PHPCMS_PATH . $filename;
//echo $filename; // D:\workspace\project\shaimobao\uploadimg/1494923889.jpg
if( !file_exists($filename) ) return;
//生成缩略图
pc_base::load_sys_class('image','','0');
$image = new image(1,0);
$image->thumb($filename, $dir.'30x30.jpg', 30, 30);
$image->thumb($filename, $dir.'45x45.jpg', 45, 45);
$image->thumb($filename, $dir.'90x90.jpg', 90, 90);
$image->thumb($filename, $dir.'180x180.jpg', 180, 180);
$aa=$image->thumb($filename, $dir.'480x480.jpg', 480, 480);
$this->_init_phpsso();
$status = $this->client->ps_updateavatar($phpssouid);
$avatar = $avatar_url.'480x480.jpg';
if( file_exists($filename) ){ //删除临时文件,只保留缩略图
unlink ($filename);
}
return $avatar;
}
/**
* 初始化phpsso
* about phpsso, include client and client configure
* @return string phpsso_api_url phpsso地址
*/
private function _init_phpsso() {
pc_base::load_app_class('client', 'member', 0);
define('APPID', pc_base::load_config('system', 'phpsso_appid'));
$phpsso_api_url = pc_base::load_config('system', 'phpsso_api_url');
$phpsso_auth_key = pc_base::load_config('system', 'phpsso_auth_key');
$this->client = new client($phpsso_api_url, $phpsso_auth_key);
return $phpsso_api_url;
}
本文标签:
很赞哦! ()
相关教程
图文教程
phpcms介绍和phpcms安装方法
1、将phpcms放在 目录下的phpcms,并解压其中,readme 没什么用,重要的是install_package;2、打开install_package文件
phpcms实现伪静态页面URL的方法
Phpcms V9可以说是cms程序中自定义功能较强的,在静态化以及伪静态方面都可以设置,在此分享PHPCMS V9伪静态设置方法,希望大家能用得上!
phpcms后台无法登录的解决方法
今天,有朋友说phpcms网站搬家、更换IP后,前台和后台都无法登录,应朋友要求,处理pc换ip后无法登录,经过一个小时的忙活,终于看到成效啦,下面我就分享下自己是怎么解决的
phpcms v9自定义表单添加验证码验证功能代码示例
修改 \phpcms\templates\default\formguide\show.html 中添加验证码显示在 \phpcms\modules\formguide\index.php 中修改:在类index中加入方法。
相关源码
-
(自适应)橙色家政服务清洁保洁服务pbootcms网站模板源码下载模板核心价值:基于PbootCMS内核开发的家政服务类网站模板,通过模块化设计展现服务项目、团队风采、服务案例等核心板块,突出时效预约、服务标准化展示等家政行业特性。查看源码 -
响应式WordPress简约博客主题Alt_BlogAlt_Blog主题该模板为博客内容展示设计,采用简约现代的风格理念,打造清晰的内容呈现平台。响应式布局确保在不同设备上都能获得良好的浏览体验,帮助博主更好地展示和分享内容。查看源码 -
(自适应响应式)蓝色环保机械设备网站pbootcms模板HTML5源码下载基于PbootCMS的生态环境技术展示平台,通过内容调整可应用于新能源设备、污水处理、空气净化等环保相关领域。设备参数采用对比表格展示,技术原理支持图文混排;查看源码 -
(PC+WAP)绿色市政园林建筑设计绿化营销型pbootcms网站模板本模板基于PbootCMS系统开发,为园林绿化、景观设计类企业设计,特别适合市政园林、景观工程、绿化养护等企业使用。采用双端适配技术查看源码 -
工商注册财务代理记账类自适应pbootcms网站工商注册、财务代理记账企业打造的数字化门户模板,基于PbootCMS内核深度开发。采用前沿响应式架构,无缝适配手机端触控交互与PC端展示需求查看源码 -
(自适应)电梯扶梯升降梯行业pbootcms企业网站模板(自适应手机版)响应式电梯扶梯类pbootcms模板 电梯生产企业绿色企业网站源码下载PbootCMS内核开发的网站模板,该模板适用于电梯、扶梯类等企业,查看源码
| 分享笔记 (共有 篇笔记) |
