亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

Codeigniter+flash實現Avatar頭像上傳的程序

2024-09-04 11:45:00
字體:
來源:轉載
供稿:網友

頭像上傳功能我們用到最多的就簡單的flash+php來實現上傳前剪切圖片然后達到我們想要的效果了,下面我來給各位整理幾個基于ci整合Avatar頭像上傳功能,希望例子能幫助到各位,然后在控制器中調用即可:實現方法,代碼如下:

  1. //重新設置session(防止新傳頭像無法顯示) 
  2. $this->session->set_userdata('user_info',$user_info); 
  3.  
  4. //項目決對路徑 
  5. $base_path = rtrim(str_replace('\\','/', FCPATH),'/'); 
  6.  
  7. require APPPATH.'libraries/avatar.class.php'
  8.  
  9. $au = new avatar($base_path.'/uploads/user/'.$user_info['mid'].'/',$base_path.'/uploads/user/temp/','/uploads/user/','/faceapi/'); 
  10. if(!$user_info['face']){ 
  11.     $uid = 'uface_'.$user_info['mid']; 
  12. }else
  13.     $uid = $user_info['face']; 
  14. }//開源代碼Vevb.com 
  15.  
  16. $this->data['urlAvatarBig']   = $user_info['face'] ? $au->getAvatarUrl($uid,'big') : (($this->user_info['sex']==0 )? static_url().'/uploads/user/dfgirl.png' : static_url().'/uploads/user/dfboy.png' ); 
  17. $this->data['urlCameraFlash'] = $au->renderHtml($uid); 
  18. $this->data['uid'] = $uid;//頭像標示 
  19. $this->load->view('center/member/edit_face',$this->data); 

視圖中的調用方法,代碼如下:

  1. <div style="float:left;width:455px;height:253px;overflow:hidden;margin-left:10px;"><?php echo $urlCameraFlash ?></div> 
  2.  
  3. <script type="text/javascript"
  4. function updateavatar(){ 
  5.     $('#userface').attr('src','/uploads/user/<?php echo $user_info['mid'].'/'.$uid?>_big.jpg?aid='+Math.random()); 
  6. </script> 

下面再來補充一下avatar.class.php了,代碼如下:

  1. <?php 
  2. class avatar{ 
  3.  public $savePath
  4.  public $tempPath
  5.  public $viewPath
  6.  public $urlPath
  7.  public $mid
  8.  public function __construct($savePath,$tempPath,$viewPath,$urlPath,$mid){ 
  9.   $this->savePath=$savePath
  10.   $this->tempPath=$tempPath
  11.   $this->viewPath='http://'.$_SERVER['HTTP_HOST'].$viewPath
  12.   $this->urlPath='http://'.$_SERVER['HTTP_HOST'].$urlPath
  13.   $this->mid = $mid
  14.  } 
  15.  // 第一步:上傳原始圖片文件 
  16.  private function uploadAvatar($uid){ 
  17.   // 檢查上傳文件的有效性 
  18.   if(emptyempty($_FILES['Filedata'])){ 
  19.    return -3; // No photograph be upload! 
  20.   } 
  21.   // 本地臨時存儲位置 
  22.   $tmpPath = $this->tempPath."{$uid}.jpg"
  23.   // 如果臨時存儲的文件夾不存在,先創建它 
  24.   $dir=dirname($tmpPath); 
  25.   if(!file_exists($dir)){ 
  26.    @mkdir($dir,0777, true ); 
  27.   } 
  28.   // 如果同名的臨時文件已經存在,先刪除它 
  29.   if(file_exists($tmpPath)){ 
  30.    @unlink($tmpPath); 
  31.   } 
  32.   // 把上傳的圖片文件保存到預定位置 
  33.   if ( @copy($_FILES['Filedata']['tmp_name'], $tmpPath) || @move_uploaded_file($_FILES['Filedata']['tmp_name'], $tmpPath)) { 
  34.    @unlink($_FILES['Filedata']['tmp_name']); 
  35.    list($width$height$type$attr) = getimagesize($tmpPath); 
  36.    if ( $width < 10 || $height < 10 || $width > 3000 || $height > 3000 || $type == 4 ) { 
  37.     @unlink($tmpPath); 
  38.     return -2; // Invalid photograph! 
  39.    } 
  40.   } else { 
  41.    @unlink($_FILES['Filedata']['tmp_name']); 
  42.    return -4; // Can not write to the data/tmp folder! 
  43.   } 
  44.   // 用于訪問臨時圖片文件的 url 
  45.   $tmpUrl =$this->viewPath."temp/{$uid}.jpg"
  46.   return $tmpUrl
  47.  } 
  48.  private function flashdata_decode($s) { 
  49.   $r = ''
  50.   $l = strlen($s); 
  51.   for($i=0; $i<$l$i=$i+2) { 
  52.    $k1 = ord($s[$i]) - 48; 
  53.    $k1 -= $k1 > 9 ? 7 : 0; 
  54.    $k2 = ord($s[$i+1]) - 48; 
  55.    $k2 -= $k2 > 9 ? 7 : 0; 
  56.    $r .= chr($k1 << 4 | $k2); 
  57.   } 
  58.   return $r
  59.  } 
  60.  // 第二步:上傳分割后的三個圖片數據流 
  61.  private function rectAvatar( $uid ){ 
  62.   // 從 $_POST 中提取出三個圖片數據流 
  63.   $bigavatar    = $this->flashdata_decode( $_POST['avatar1'] ); 
  64.   $middleavatar = $this->flashdata_decode( $_POST['avatar2'] ); 
  65.   if ( !$bigavatar || !$middleavatar) { 
  66.    return '<root><message type="error" value="-2" /></root>'
  67.   } 
  68.    
  69.   //不存在目錄,則創建 
  70.   if(!file_exists($this->savePath)){ 
  71.    @mkdir($this->savePath,0777, true ); 
  72.   } 
  73.   // 保存為圖片文件 
  74.   $bigavatarfile    = $this->savePath."{$uid}_big.jpg"
  75.   $middleavatarfile = $this->savePath."{$uid}_middle.jpg"
  76.   $success = 1; 
  77.   $fp = @fopen($bigavatarfile'wb'); 
  78.   @fwrite($fp$bigavatar); 
  79.   @fclose($fp); 
  80.   $fp = @fopen($middleavatarfile'wb'); 
  81.   @fwrite($fp$middleavatar); 
  82.   @fclose($fp); 
  83.   // 驗證圖片文件的正確性 
  84.   $biginfo    = @getimagesize($bigavatarfile); 
  85.   $middleinfo = @getimagesize($middleavatarfile); 
  86.   if ( !$biginfo || !$middleinfo || $biginfo[2] == 4 || $middleinfo[2] == 4 ) { 
  87.    file_exists($bigavatarfile) && unlink($bigavatarfile); 
  88.    file_exists($middleavatarfile) && unlink($middleavatarfile); 
  89.    $success = 0; 
  90.   } 
  91.   // 刪除臨時存儲的圖片 
  92.   $tmpPath = $this->tempPath."{$uid}.jpg"
  93.   @unlink($tmpPath); 
  94.   //臨時保存頭像 
  95.   $con=mysql_connect('localhost','root','root'); 
  96.   mysql_select_db('zenyue'); 
  97.   mysql_query("set names utf8"); 
  98.   $sql="update zen_user set `face`='".$uid."' where mid='".$this->mid."'"
  99.   mysql_query($sql); 
  100.   return '<?xml version="1.0" ?><root><face success="' . $success . '"/></root>'
  101.  } 
  102.  // 從客戶端訪問頭像圖片的 url 
  103.  public function getAvatarUrl( $uid$size='middle' ){ 
  104.   $ci = &get_instance(); 
  105.   $user_info = $ci->session->userdata('user_info'); 
  106.   return $this->viewPath."{$user_info['mid']}/{$uid}_{$size}.jpg"
  107.  } 
  108.  // 處理 HTTP Request 
  109.  // 返回值:如果是可識別的 request,處理后返回 true;否則返回 false。 
  110.  public function processRequest(){ 
  111.   // 從 input 參數里拆解出自定義參數 
  112.   $arr = array(); 
  113.   parse_str$_GET['input'], $arr ); 
  114.   $uid = $arr['uid']; 
  115.   if ( $_GET['a'] == 'uploadavatar') { 
  116.    // 第一步:上傳原始圖片文件 
  117.    echo $this->uploadAvatar( $uid ); 
  118.    return true; 
  119.   } else if ( $_GET['a'] == 'rectavatar') { 
  120.    // 第二步:上傳分割后的三個圖片數據流 
  121.    echo $this->rectAvatar( $uid ); 
  122.    return true; 
  123.   } 
  124.   return false; 
  125.  } 
  126.  // 編輯頁面中包含 camera.swf 的 HTML 代碼 
  127.  public function renderHtml( $uid ){ 
  128.   // 把需要回傳的自定義參數都組裝在 input 里 
  129.   $ci = &get_instance(); 
  130.   $user_info = $ci->session->userdata('user_info'); 
  131.   $input = urlencode("uid={$uid}&FSESSIONID=".session_id().'&mid='.$user_info['mid']); 
  132.   $baseUrl = '/public/zen/js/avatar/'
  133.   $uc_api = urlencode( $this->urlPath.'avatar.php'); 
  134.   $urlCameraFlash = "{$baseUrl}camera.swf?m=user&inajax=1&appid=1&ucapi={$uc_api}&input={$input}&uploadSize=2048"
  135.   $urlCameraFlash = '<script src="'.$baseUrl.'common.js?B6k" type="text/javascript"></script><script type="text/javascript">document.write(AC_FL_RunContent("width","455","height","253","scale","exactfit","src","'.$urlCameraFlash.'","id","mycamera","name","mycamera","quality","high","bgcolor","#ffffff","wmode","transparent","menu","false","swLiveConnect","true","allowScriptAccess","always"));</script>'
  136.   return $urlCameraFlash
  137.  } 
  138. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
7m第一福利500精品视频| 欧美日韩另类字幕中文| 色偷偷偷亚洲综合网另类| 国产成人高潮免费观看精品| 国产欧美日韩中文字幕在线| 亚洲自拍偷拍色图| 欧美丝袜一区二区| 国产精品自在线| 欧美性理论片在线观看片免费| 亚洲精品xxx| 一区二区三区视频免费在线观看| 国产精品久久久久久久久粉嫩av| 日本中文字幕成人| 深夜福利一区二区| 欧美日韩一区二区精品| 91精品久久久久久久久青青| 欧美国产日韩免费| 日韩精品免费观看| 国产99久久久欧美黑人| 日韩中文字幕在线观看| 欧美乱大交xxxxx| 国产suv精品一区二区| 久久av在线播放| 成人精品在线视频| 2024亚洲男人天堂| 久久久久久久久久av| 亚洲人成自拍网站| 亚洲国产精品久久91精品| 国产精品久久久久9999| 亚洲成人精品在线| 日韩av综合网站| 国产成人精品午夜| 日韩国产欧美精品在线| 欧美色播在线播放| 亚洲最新av网址| 久久久精品2019中文字幕神马| 亚洲欧美一区二区三区情侣bbw| 久国内精品在线| 亚洲男人的天堂在线| 欧美激情va永久在线播放| 亚洲电影在线观看| 国产女人18毛片水18精品| 欧美性xxxxxxxxx| 久久乐国产精品| 91日韩在线播放| 欧美日韩国产精品一区二区三区四区| 日韩中文字幕在线| 在线观看欧美www| 91免费视频网站| 久久亚洲精品小早川怜子66| 中文字幕日韩有码| 欧美性猛交丰臀xxxxx网站| 亚洲国产黄色片| 青青久久av北条麻妃黑人| 日韩美女福利视频| 91精品国产91久久久久久久久| 欧美成人性生活| 久久久久久久影院| 国产精品中文字幕在线观看| 国产精品麻豆va在线播放| 亚洲精品永久免费| 久久91精品国产91久久久| 日韩中文字幕在线视频| 日韩av电影在线播放| 亚洲第一精品自拍| 91国产精品91| 日韩人在线观看| 亚洲精品永久免费| 久久婷婷国产麻豆91天堂| 亚洲最大的成人网| 久久人体大胆视频| 精品国产一区久久久| 欧美激情视频免费观看| 欧美另类第一页| 欧美激情综合色综合啪啪五月| 97成人精品区在线播放| 国产精品人人做人人爽| 人人爽久久涩噜噜噜网站| 国产剧情久久久久久| 亚洲人成电影网站色…| 中文字幕亚洲一区二区三区五十路| 亚洲第一福利视频| 久久综合88中文色鬼| 欧美日韩亚洲网| 亚洲sss综合天堂久久| 国产福利视频一区| 中文字幕日韩视频| 综合网日日天干夜夜久久| 国产不卡av在线免费观看| 中文字幕国产日韩| 91tv亚洲精品香蕉国产一区7ujn| 精品无码久久久久久国产| 国产欧美一区二区三区久久| 国产精品www色诱视频| 中文字幕精品在线视频| 亚洲激情成人网| 欧美成人精品在线播放| 8x拔播拔播x8国产精品| 久久亚洲电影天堂| 成人网页在线免费观看| 久久精品视频亚洲| 亲子乱一区二区三区电影| 国产精品看片资源| 国产成人在线一区二区| www.久久色.com| 精品国产美女在线| 国产精品久久久久久久久久久久| 亚洲国产精品人久久电影| 国产欧美一区二区三区久久| 国产精品久久国产精品99gif| 日韩成人av网| 国产欧美日韩精品丝袜高跟鞋| 日韩av网站电影| 九色精品免费永久在线| 欧美xxxx14xxxxx性爽| 久久影视电视剧免费网站清宫辞电视| 一区二区三区在线播放欧美| 欧美韩日一区二区| 成人欧美一区二区三区在线湿哒哒| 欧美丝袜第一区| 日韩精品在线私人| 亚洲美女av黄| 日本人成精品视频在线| 欧美性视频网站| 精品久久香蕉国产线看观看亚洲| 中文字幕免费国产精品| 久久精品最新地址| 国产精品电影观看| 久热在线中文字幕色999舞| 久久精品最新地址| 欧美激情小视频| 久久在线免费视频| 成人黄色av免费在线观看| 欧洲成人免费aa| 国产精品视频中文字幕91| 91极品视频在线| 欧美超级乱淫片喷水| 亚洲视频在线观看免费| 成人综合网网址| 色爱精品视频一区| 国产精品稀缺呦系列在线| 欧美另类69精品久久久久9999| 国产精品高潮粉嫩av| 亚洲网在线观看| 黑人巨大精品欧美一区二区| 久久久噜噜噜久久| 久久久久亚洲精品| 欧美激情在线一区| 亚洲日本中文字幕| 91久热免费在线视频| 日韩**中文字幕毛片| 国产美女精品视频免费观看| 欧美男插女视频| 精品亚洲va在线va天堂资源站| 欧美人交a欧美精品| 国产精品一区二区女厕厕| 97久久精品人搡人人玩| 亚洲精品一区二区网址| 中文字幕精品网| 亚洲xxxx视频| 91精品中国老女人| 国产精品福利久久久| 亚洲最大在线视频| www.日韩不卡电影av|