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

首頁 > 開發 > ThinkPHP > 正文

配置Thinkphp3.2支持七牛圖片上傳的方法

2024-09-09 15:20:21
字體:
來源:轉載
供稿:網友

七牛圖片上傳方法我們只要在框架中配置它的接口及上傳的些小細節就可以實現了,下面一起來看一個關于配置Thinkphp3.2支持七牛圖片上傳的方法,希望文章對各位有幫助.

作為php菜鳥,在公司搗鼓的一個基于thinkphp框架項目上要是用七牛(原來有用過C#版本的sdk),現在在官方找到php的官方sdk,最后發現原來Thinkphp已經支持驅動類型是qiniu的文件上傳了.

現在將配置說明一下。

利用七牛云私有空間存儲文件

注冊七牛云,創建空間,將空間設為私有

需要記下的東西:

AK,SK,bucket

在config.php添加:

  1. //七牛上傳文件設置 
  2.     'PICTURE_UPLOAD_DRIVER'=>'Qiniu',    
  3.     //本地上傳文件驅動配置 
  4.     'UPLOAD_LOCAL_CONFIG'=>array(), 
  5.   'UPLOAD_QINIU_CONFIG'=>array
  6.         'accessKey'=>'l3N4q0XCqm0rssaaMTHryZYG-LnKMH'
  7.         'secrectKey'=>'7qPVaeRasasan2TjALqQAjF0h6jOt0D1jF'
  8.         'bucket'=>'yaasasnbao'
  9.         'domain'=>'7xasssa.com2.z0.glb.qiniucdn.com'
  10.         'timeout'=>3600, 
  11.     ), 

3、添加一個上傳類Model

  1. <?php 
  2. // +---------------------------------------------------------------------- 
  3. // | OneThink [ WE CAN DO IT JUST THINK IT ] 
  4. // +---------------------------------------------------------------------- 
  5. // | Copyright (c) 2013 http://www.onethink.cn All rights reserved. 
  6. // +---------------------------------------------------------------------- 
  7. // | Author: huajie <banhuajie@163.com> 
  8. // +---------------------------------------------------------------------- 
  9. namespace Admin/Model; 
  10. use Think/Model; 
  11. use Think/Upload; 
  12. /** 
  13.  * 圖片模型 
  14.  * 負責圖片的上傳 
  15.  */ 
  16. class PictureModel extends Model{ 
  17.     /** 
  18.      * 自動完成 
  19.      * @var array 
  20.      */ 
  21.     protected $_auto = array
  22.         array('status', 1, self::MODEL_INSERT), 
  23.         array('create_time', NOW_TIME, self::MODEL_INSERT), 
  24.     ); 
  25.     /** 
  26.      * 文件上傳 
  27.      * @param  array  $files   要上傳的文件列表(通常是$_FILES數組) 
  28.      * @param  array  $setting 文件上傳配置 
  29.      * @param  string $driver  上傳驅動名稱 
  30.      * @param  array  $config  上傳驅動配置 
  31.      * @return array           文件上傳成功后的信息 
  32.      */ 
  33.     public function upload($files$setting$driver = 'Local'$config = null){ 
  34.         /* 上傳文件 */ 
  35.           
  36.         $Upload = new Upload($setting$driver$config); 
  37.         $info  = $Upload->upload($files); 
  38.         if($info){ //文件上傳成功,記錄文件信息 
  39.             
  40.             return $info//文件上傳成功 
  41.         } else { 
  42.             $this->error = $Upload->getError(); 
  43.             return false; 
  44.         } 
  45.     } 
  46.     /** 
  47.      * 下載指定文件 
  48.      * @param  number  $root 文件存儲根目錄 
  49.      * @param  integer $id   文件ID 
  50.      * @param  string   $args     回調函數參數 
  51.      * @return boolean       false-下載失敗,否則輸出下載文件 
  52.      */ 
  53.     public function download($root$id$callback = null, $args = null){ 
  54.         /* 獲取下載文件信息 */ 
  55.         $file = $this->find($id); 
  56.         if(!$file){ 
  57.             $this->error = '不存在該文件!'
  58.             return false; 
  59.         } 
  60.         /* 下載文件 */ 
  61.         switch ($file['location']) { 
  62.             case 0: //下載本地文件 
  63.                 $file['rootpath'] = $root
  64.                 return $this->downLocalFile($file$callback$args); 
  65.             case 1: //TODO: 下載遠程FTP文件 
  66.                 break
  67.             default
  68.                 $this->error = '不支持的文件存儲類型!'
  69.                 return false; 
  70.         } 
  71.     } 
  72.     /** 
  73.      * 檢測當前上傳的文件是否已經存在 
  74.      * @param  array   $file 文件上傳數組 
  75.      * @return boolean       文件信息, false - 不存在該文件 
  76.      */ 
  77.     public function isFile($file){ 
  78.         if(emptyempty($file['md5'])){ 
  79.             throw new /Exception('缺少參數:md5'); 
  80.         } 
  81.         /* 查找文件 */ 
  82.         $map = array('md5' => $file['md5'],'sha1'=>$file['sha1'],); 
  83.         return $this->field(true)->where($map)->find(); 
  84.     } 
  85.     /** 
  86.      * 下載本地文件 
  87.      * @param  array    $file     文件信息數組 
  88.      * @param  callable $callback 下載回調函數,一般用于增加下載次數 
  89.      * @param  string   $args     回調函數參數 
  90.      * @return boolean            下載失敗返回false 
  91.      */ 
  92.     private function downLocalFile($file$callback = null, $args = null){ 
  93.         if(is_file($file['rootpath'].$file['savepath'].$file['savename'])){ 
  94.             /* 調用回調函數新增下載數 */ 
  95.             is_callable($callback) && call_user_func($callback$args); 
  96.             /* 執行下載 */ //TODO: 大文件斷點續傳 
  97.             header("Content-Description: File Transfer"); 
  98.             header('Content-type: ' . $file['type']); 
  99.             header('Content-Length:' . $file['size']); 
  100.             if (preg_match('/MSIE/'$_SERVER['HTTP_USER_AGENT'])) { //for IE 
  101.                 header('Content-Disposition: attachment; filename="' . rawurlencode($file['name']) . '"'); 
  102.             } else { 
  103.                 header('Content-Disposition: attachment; filename="' . $file['name'] . '"'); 
  104.             } 
  105.             readfile($file['rootpath'].$file['savepath'].$file['savename']); 
  106.             exit
  107.         } else { 
  108.             $this->error = '文件已被刪除!'
  109.             return false; 
  110.         } //Vevb.com 
  111.     } 
  112.     /** 
  113.      * 清除數據庫存在但本地不存在的數據 
  114.      * @param $data 
  115.      */ 
  116.     public function removeTrash($data){ 
  117.         //$this->where(array('id'=>$data['id'],))->delete(); 
  118.     } 

4、修改調用上傳類的代碼

  1. public function ImgUpload() 
  2.     { 
  3.         //$this->error("沒有文件!"); 
  4.         //TODO: 用戶登錄檢測  
  5.         /* 調用文件上傳組件上傳文件 */ 
  6.         $Picture = D('Picture'); 
  7.         $pic_driver = C('PICTURE_UPLOAD_DRIVER'); 
  8.         $info = $Picture->upload( 
  9.             $_FILES
  10.             C('PICTURE_UPLOAD'), 
  11.             C('PICTURE_UPLOAD_DRIVER'), 
  12.             C("UPLOAD_&#123;&#36;pic_driver&#125;_CONFIG"
  13.         ); //TODO:上傳到遠程服務器 
  14.         /* 記錄圖片信息 */ 
  15.         if($info){ 
  16.             /* 返回JSON數據 */ 
  17.            echo json_encode($info); 
  18.              
  19.         } else { 
  20.             echo json_encode($info); 
  21.         }  
  22.     } 

5、在客戶端使用ajaxfileupload調用php方法

  1. //上傳圖片 
  2. $(document).on('change','#upfile',function(){ 
  3.     $.ajaxFileUpload({ 
  4.         url:'{:U("Company/ImgUpload")}'
  5.         secureuri:false, 
  6.         fileElementId:'upfile'
  7.         dataType: 'json'
  8.         type:'post'
  9.         data: { fileElementId: 'upfile'}, 
  10.         success: function (data) { 
  11.                
  12.         $('#showimg').attr('src',data.upfile.url); 
  13.         $('#imageurl').val(data.upfile.url); 
  14.         }          
  15.     })  
  16. }) 

這里最好使用json的數據類型進行傳輸.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产偷国产偷亚洲清高网站| 午夜欧美不卡精品aaaaa| 久久久国产影院| 日韩中文在线中文网在线观看| 亚洲精品福利在线观看| 亚洲欧美日韩网| 色小说视频一区| 精品久久久久久久久久久久久久| 日本精品久久久| 日韩欧美国产一区二区| 精品国产欧美一区二区五十路| 色综合视频一区中文字幕| 中文字幕精品一区久久久久| 18久久久久久| 亚洲国产欧美一区二区三区同亚洲| 亚洲最新av在线网站| 亚洲综合在线播放| 亚洲欧美中文另类| 在线观看欧美www| 成人网页在线免费观看| 亚洲天天在线日亚洲洲精| 日韩中文在线中文网在线观看| 午夜免费久久久久| 91国在线精品国内播放| 国产精品自产拍高潮在线观看| 91在线免费视频| 久久亚洲精品中文字幕冲田杏梨| 欧美性xxxx极品hd满灌| 九九热这里只有精品6| 中文字幕在线成人| 成人黄色av网站| 国产成人黄色av| 亚洲va欧美va在线观看| 日韩精品中文字幕有码专区| 国产精品极品在线| 久久久久国产精品免费网站| 国产免费久久av| 91精品国产自产在线老师啪| 国产精品jizz在线观看麻豆| 亚洲影院高清在线| 国产精品永久在线| 日韩欧美福利视频| 日韩不卡中文字幕| 在线午夜精品自拍| 久久久黄色av| 国产日韩欧美视频| 国产日韩欧美在线观看| 国产精品人成电影在线观看| 国产欧美日韩免费| 91地址最新发布| 川上优av一区二区线观看| 亚洲第一av网| 一区二区福利视频| 81精品国产乱码久久久久久| 美女福利视频一区| 久久国内精品一国内精品| 欧美精品福利在线| 久久中文字幕国产| 国产精品999999| 欧美夫妻性生活视频| 欧美激情久久久久| 97在线看免费观看视频在线观看| 中文字幕亚洲欧美日韩在线不卡| 亚洲影院高清在线| 精品中文字幕乱| 激情成人在线视频| 亚洲女人被黑人巨大进入| 欧美成年人视频网站| 国产成人亚洲综合青青| 久久久久一本一区二区青青蜜月| 综合av色偷偷网| 日韩视频欧美视频| 亚洲人免费视频| 97在线免费观看视频| 欧美国产第一页| 一区二区成人av| 91精品国产乱码久久久久久久久| 91av成人在线| 在线观看91久久久久久| 在线成人免费网站| 欧美大尺度电影在线观看| 久久不射热爱视频精品| 国外成人在线播放| 国产成人精彩在线视频九色| 91超碰caoporn97人人| 91亚洲国产精品| 国产一区二区三区日韩欧美| 亚洲二区在线播放视频| 日韩欧美在线中文字幕| 国产一区二区在线免费| 欧美激情亚洲综合一区| 精品国产31久久久久久| 亚洲欧美日韩视频一区| 日本三级久久久| 久久精视频免费在线久久完整在线看| 国产极品精品在线观看| 国产乱肥老妇国产一区二| 福利微拍一区二区| 日本老师69xxx| 美女视频黄免费的亚洲男人天堂| 2019日本中文字幕| 亚洲国产精品福利| 91产国在线观看动作片喷水| 久久久久久久网站| 亚洲精品小视频在线观看| 久久免费在线观看| 亚洲自拍偷拍色片视频| 久久久久久久久亚洲| 最近2019年中文视频免费在线观看| 亚洲天堂第二页| 欧美一区二三区| 欧美一区二区三区精品电影| 亚洲韩国欧洲国产日产av| 国产精品视频大全| 欧美激情一区二区三区在线视频观看| 亚洲一区国产精品| 欧美性猛交丰臀xxxxx网站| 欧美黑人巨大xxx极品| 亚洲欧美日韩国产成人| 久久人人爽人人爽人人片av高请| 色在人av网站天堂精品| 国产精品久久久久久久久影视| 日本国产欧美一区二区三区| 性欧美暴力猛交69hd| 久久99视频精品| 亚洲高清色综合| 欧美最猛性xxxxx免费| 国产一区二区美女视频| 欧美性xxxx极品hd欧美风情| 欧美中文字幕精品| 国产91色在线| 日韩精品免费电影| 欧美精品aaa| 97久久精品视频| 98午夜经典影视| 国产在线高清精品| 97在线看免费观看视频在线观看| 日韩在线视频导航| 日韩欧美一区二区在线| 国产精品青青在线观看爽香蕉| 欧美性xxxx极品高清hd直播| 亚洲xxx视频| 国产精品久久久久久久久久久久久| 久久亚洲精品一区二区| 日本不卡视频在线播放| 亚洲国产欧美精品| 国产精品视频久久久久| 亚洲国产天堂网精品网站| 精品magnet| 久久久久久成人精品| 国产亚洲视频在线观看| 亚洲欧洲激情在线| 国产精品麻豆va在线播放| 精品激情国产视频| 久久香蕉国产线看观看av| 日本在线观看天堂男亚洲| 日韩av中文字幕在线| 国产99久久久欧美黑人| 国产香蕉精品视频一区二区三区| 在线成人激情视频| 亚洲第一国产精品| 岛国av在线不卡| 欧美一级黑人aaaaaaa做受| 欧美精品在线看|