本文實例為大家分享了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)容,希望對大家的學習有所幫助,也希望大家多多支持。
【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。