php使用curl實現(xiàn)ftp文件下載功能
更新時間:2017年05月16日 15:37:34 作者:wodecc_u
這篇文章主要為大家詳細介紹了php使用curl實現(xiàn)ftp文件下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了php實現(xiàn)ftp文件下載功能,供大家參考,具體內(nèi)容如下
不知道為什么用正常的ftp_get函數(shù)下載文件速度特別慢,但是用ftp的客戶端下載很快,所以換了curl的下載方式,速度正常
function file_upload($ftpIp,$ftpUser,$ftpPwd,$path,$fileSavePath){ $curlobj = curl_init();//初始化 //傳入ftp的目標文件,如'ftp://192.168.3.1/test/1.jpg' curl_setopt($curlobj,CURLOPT_URL,"ftp://".$ftpIp."/".$path); curl_setopt($curlobj,CURLOPT_HEADER,0);//不輸出header curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,0); //time out after 300s curl_setopt($curlobj,CURLOPT_TIMEOUT,2000);//超時時間 //通過這個函數(shù)設(shè)置ftp的用戶名和密碼,沒設(shè)置就不需要! curl_setopt($curlobj,CURLOPT_USERPWD,$ftpUser.':'.$ftpPwd); $outfile = fopen($fileSavePath,'w+'); //保存到本地文件的文件名 curl_setopt($curlobj,CURLOPT_FILE,$outfile); $rtn = curl_exec($curlobj); if(curl_errno($curlobj)){ writeLog('Curl error: ' . curl_error($curlobj)); } fclose($outfile); curl_close($curlobj); if($rtn == 1){ return true; }else{ unlink($fileSavePath);//如果下載失敗,但是本地open了這個文件,所以要刪除 return false; } }
測試下載小文件是正常的,但是如果網(wǎng)速很慢,下載大文件時候,會報一個ftp timeout的錯誤,目前還在不知道是哪里配置問題,還是什么問題。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP中include/require/include_once/require_once使用心得
include() 、require()語句包含并運行指定文件。這兩結(jié)構(gòu)在包含文件上完全一樣,唯一的區(qū)別是對于錯誤的處理。require()語句在遇到包含文件不存在,或是出錯的時候,就停止即行,并報錯。include()則繼續(xù)即行。2016-08-08php使用function_exists判斷函數(shù)可用的方法
這篇文章主要介紹了php使用function_exists判斷函數(shù)可用的方法,通過一個圖像處理函數(shù)中使用function_exists函數(shù)判斷并輸出來實現(xiàn)函數(shù)存在判斷與流程靈活控制的功能,具有很好的借鑒價值,需要的朋友可以參考下2014-11-11