国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

ThinkPHP框架實現(xiàn)FTP圖片上傳功能示例

2024-05-05 00:08:08
字體:
供稿:網(wǎng)友

本文實例講述了ThinkPHP框架實現(xiàn)FTP圖片上傳功能。分享給大家供大家參考,具體如下:

背景:

圖片上傳功能應該是個極為普遍的,在此參考了ThinkPHP 框架中的集成方法整理了一下FTP圖片的上傳功能,這樣方便在后臺操作時,把有關的圖片直接上傳到線上的圖片服務器,避免大流量訪問的圖片加載緩慢,降低網(wǎng)站的訪問壓力,不合理之處,敬請指摘...

操作:

1.前端設計

這里主要為了測試功能的實現(xiàn),使用最簡單的設計,既方便參考又有利于后期的功能擴展。如下附upload.html主要代碼,著重注意紅框圈出的代碼,其中css樣式比較簡單,需要的可以參考后面的源代碼。

ThinkPHP,FTP,圖片上傳

2.后臺控制器設計

config.class.php 主要代碼如下所示,其中設計的表“conf”在此只需用兩個字段就好——'tag','value',可以使用簡單的varchar類型。

public function upload(){  if (IS_POST){    foreach ($_FILES as $key => $value){      $img = handleImg($key);      $furl = C('REMOTE_ROOT').$img;      if ($img){        ftp_upload($furl,$img);        $saveData['value'] = $img;        M('conf')          ->where("tag = '".$key."'")          ->save($saveData);      }    }    $this->success('FTP 測試完成',U('Config/upload'),2);  }else{    $imgUrl = M('conf')      ->where("tag = 'upImg'")      ->getField('value');    $this->assign('imgUrl',$imgUrl);    $this->display();  }}

3.配置數(shù)據(jù)

在公共配置文件中,進行如下常量的數(shù)據(jù)配置,參考代碼如下,注意配置FTP 賬號及密碼的正確性,此處安全起見只是舉例。

//ftp(外網(wǎng)服務器)上傳文件相關參數(shù)'FTP_SEVER'    => 'http://img.52zhenmi.com', //此地址,作為圖片讀取的位置 請上線前仔細確認'FTP_HOST'    => 'img.52zhenmi.com','WEB_SEVER'   => 'http://img.52zhenmi.com','WEB_M_SERVER'  => 'http://www.52zhenmi.com/m','FTP_NAME'    => 'fexxxi',//ftp帳戶'FTP_PWD'    => '1qxxxxxxw',//ftp密碼'FTP_PORT'    => '21',//ftp端口,默認為21'FTP_PASV'    => true,//是否開啟被動模式,true開啟,默認不開啟'FTP_SSL'    => false,//ssl連接,默認不開啟'FTP_TIMEOUT'  => 60,//超時時間,默認60,單位 s'REMOTE_ROOT'  => '/',//圖片服務器根目錄

4.引入文件

以我的代碼為例,在此引用了兩個文件,其中的FTP.class.php 放在了'/Library/Think' 目錄下;Upload.class.php 放在了'/Library/Org/Net'目錄下,可根據(jù)自己的使用習慣自行調(diào)整目錄,只要保證實例化路徑時沒問題就可。

5.公共函數(shù)添加

注意添加上文步驟2中使用到的公共函數(shù)。

/** * 圖片上傳的公共處理方法 * @param string $fileName 圖片上傳的name * @return string 圖片的存儲路徑 */function handleImg($fileName){  if($_FILES[$fileName]['tmp_name'] != ""){    $img = $_FILES[$fileName];    $imgUrl = __ROOT__."/public";    $upload = new /Org/Net/Upload($img, $imgUrl);    return $upload->main();  }}//FTP上傳文件函數(shù)function ftp_upload($remotefile,$localfile){  $ftp = new /Think/Ftp();  $data['server'] = C('FTP_HOST');  $data['username'] = C('FTP_NAME');//ftp帳戶  $data['password'] = C('FTP_PWD');//ftp密碼  $data['port'] = C('FTP_PORT');//ftp端口,默認為21  $data['pasv'] = C('FTP_PASV');//是否開啟被動模式,true開啟,默認不開啟  $data['ssl'] = C('FTP_SSL');//ssl連接,默認不開啟  $data['timeout'] = C('FTP_TIMEOUT');//超時時間,默認60,單位 s  $info = $ftp->start($data);  if($info){    if($ftp->put($remotefile,$localfile)){}  }  $ftp->close();}

6.操作截圖

ThinkPHP,FTP,圖片上傳

ThinkPHP,FTP,圖片上傳

7.提示

對于這份參考代碼,涉及到的公共方法handleImg()會先將需要上傳的圖片傳到當前操作的網(wǎng)站根目錄,之后又會通過ftp_upload()將圖片傳到對應的圖片F(xiàn)TP服務器,從實現(xiàn)步驟上看第一步多余,主要是開發(fā)過程中的測試服務器不符合FTP賬號要求,同時又要方便線上內(nèi)容修改的及時更新,暫沒優(yōu)化,也不麻煩,算留大家一個自由發(fā)揮的機會吧。

源代碼點擊此處本站下載

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 嘉义县| 前郭尔| 黄浦区| 临高县| 宁波市| 锦屏县| 沙洋县| 靖西县| 宝兴县| 古田县| 嘉善县| 青州市| 东平县| 广安市| 无为县| 怀来县| 犍为县| 乐平市| 鄂伦春自治旗| 会同县| 廊坊市| 社旗县| 赤壁市| 衡山县| 宁陕县| 芒康县| 西吉县| 贵港市| 湘阴县| 获嘉县| 沁源县| 都兰县| 广饶县| 虎林市| 新竹县| 阿拉善右旗| 长治市| 那曲县| 临沂市| 鹤岗市| 屯门区|