使用PHP從微信伺服器上下載檔案到本機伺服器

來源:互聯網
上載者:User
總所周知,檔案上傳到之後,使用$src= "https://api.weixin.qq.com/cgi-bin/media/get?access_token=" . $access_token . "&media_id=" . $f ['file'];就可以擷取到檔案資訊,若是圖片,使用img標籤的將其src屬性設定為$src就可以在頁面顯示圖片了。

這篇就用這個作為檔案的URL進行檔案下載:

$url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=" . $access_token . "&media_id=" . $f ['file'];

其中$access_token是根據公眾平台註冊的APPID、秘鑰等加密之後擷取到的簽名,$f ['file']是上傳到伺服器之後返回來的檔案在伺服器上的資訊,是一個字串,有點類似於:檔案上傳到伺服器之後,在檔案表中插入一條資料記載這個檔案的名稱、路徑、所屬AppId等基本資料,並將這條資料的主鍵序號返回給用戶端。$f ['file']就是這個主鍵序號。

檔案下載的調用方法:

var $array = $this->getImage($url,$path,$fileName,1);

檔案下載的具體代碼:

/**功能:下載遠程圖片儲存到本地*參數:*$url:需要下載的檔案url,*$path:下載下來的檔案需要儲存到的目錄*$fileName:儲存檔案名稱,當儲存檔案名稱為空白時則使用遠程檔案原來的名稱*type:使用的下載方式*/function getImage($url,$save_dir='',$filename='',$type=0){$ext=".jpg";//以jpg的格式結尾clearstatcache();//清除檔案快取if(trim($url)==''){return array('file_name'=>'','save_path'=>'','error'=>1);}if(trim($save_dir)==''){$save_dir='./';}if(trim($filename)==''){//儲存檔案名稱$filename=time().$ext;}else{$filename = $filename.$ext;}if(0!==strrpos($save_dir,'/')){$save_dir.='/';}//建立儲存目錄if(!is_dir($save_dir)){//檔案夾不存在,則建立//print_r($save_dir."檔案不存在");mkdir(iconv("UTF-8", "GBK", $save_dir),0777,true);//mkdir($save_dir,0777,true);}//擷取遠程檔案所採用的方法 if($type){$ch=curl_init();$timeout=3;curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);$img=curl_exec($ch);curl_close($ch);}else{ob_start(); readfile($url);$img=ob_get_contents(); ob_end_clean(); }$size=strlen($img);//檔案大小 //var_dump("檔案大小:".$size);$fp2=@fopen($save_dir.$filename,'w');fwrite($fp2,$img);fclose($fp2);unset($img,$url);return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);}
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.