phpcms 使用者修改頭像

來源:互聯網
上載者:User

標籤:預覽   pos   his   auth   hpc   連結   review   縮圖   substr   

做的項目使用者的頭像是存在ucenter裡面,phpcms通過phpsso這個單點登入系統? 具體的我也不清楚,phpcms內建的v9_member表裡沒有存放帳戶圖片的欄位,如果需要修改,就要修改ucenter裡的頭像,

在phpcms裡讀取帳戶圖片,也需要phpsso,通過它來連結ucenter 從而擷取頭像。

那麼怎麼通過在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.jpgif( $_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://www.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.jpgif( !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 使用者修改頭像

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.