php使用curl實(shí)現(xiàn)ftp文件下載功能
本文實(shí)例為大家分享了php實(shí)現(xiàn)ftp文件下載功能,供大家參考,具體內(nèi)容如下
不知道為什么用正常的ftp_get函數(shù)下載文件速度特別慢,但是用ftp的客戶端下載很快,所以換了curl的下載方式,速度正常
function file_upload($ftpIp,$ftpUser,$ftpPwd,$path,$fileSavePath){
$curlobj = curl_init();//初始化
//傳入ftp的目標(biāo)文件,如'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í)間
//通過(guò)這個(gè)函數(shù)設(shè)置ftp的用戶名和密碼,沒(méi)設(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了這個(gè)文件,所以要?jiǎng)h除
return false;
}
}
測(cè)試下載小文件是正常的,但是如果網(wǎng)速很慢,下載大文件時(shí)候,會(huì)報(bào)一個(gè)ftp timeout的錯(cuò)誤,目前還在不知道是哪里配置問(wèn)題,還是什么問(wèn)題。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- php使用curl下載指定大小的文件實(shí)例代碼
- php使用curl模擬瀏覽器表單上傳文件或者圖片的方法
- PHP使用curl請(qǐng)求實(shí)現(xiàn)post方式上傳圖片文件功能示例
- PHP實(shí)現(xiàn)通過(guò)CURL上傳文件功能示例
- 可兼容php5與php7的cURL文件上傳功能實(shí)例分析
- PHP5.0~5.6 各版本兼容性cURL文件上傳功能實(shí)例分析
- PHP使用curl模擬post上傳及接收文件的方法
- php curl 上傳文件代碼實(shí)例
- php下利用curl判斷遠(yuǎn)程文件是否存在的實(shí)現(xiàn)代碼
- PHP使用CURL實(shí)現(xiàn)下載文件功能示例
相關(guān)文章
RSA實(shí)現(xiàn)JS前端加密與PHP后端解密功能示例
這篇文章主要介紹了RSA實(shí)現(xiàn)JS前端加密與PHP后端解密功能,結(jié)合實(shí)例形式分析了rsa前端js加密與后端php解密相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
php模板函數(shù) 正則實(shí)現(xiàn)代碼
有些空閑,就弄了下template函數(shù),比較粗糙。主要是利用正則表達(dá)式,把模板文件(html文件)轉(zhuǎn)換成php文件,從而實(shí)現(xiàn)前后臺(tái)分離,即是所謂的mvc思想了2012-10-10
PHP基于方差和標(biāo)準(zhǔn)差計(jì)算學(xué)生成績(jī)的穩(wěn)定性示例
這篇文章主要介紹了PHP基于方差和標(biāo)準(zhǔn)差計(jì)算學(xué)生成績(jī)的穩(wěn)定性操作,涉及PHP數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
php實(shí)現(xiàn)四舍五入的方法小結(jié)
這篇文章主要介紹了php實(shí)現(xiàn)四舍五入的方法,實(shí)例總結(jié)了php實(shí)現(xiàn)四舍五入的三種常用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
PHP 日期時(shí)間函數(shù)的高級(jí)應(yīng)用技巧
PHP 日期時(shí)間函數(shù)常用函數(shù)高級(jí)使用技巧,大家在以后的開(kāi)發(fā)中能用的到。2009-10-10
通過(guò)緩存數(shù)據(jù)庫(kù)結(jié)果提高PHP性能的原理介紹
眾所周知,緩存數(shù)據(jù)庫(kù)查詢的結(jié)果可以顯著縮短腳本執(zhí)行時(shí)間,并最大限度地減少數(shù)據(jù)庫(kù)服務(wù)器上的負(fù)載。如果要處理的數(shù)據(jù)基本上是靜態(tài)的,則該技術(shù)將非常有效。這是因?yàn)閷?duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的許多數(shù)據(jù)請(qǐng)求最終可以從本地緩存得到滿足,從而不必連接到數(shù)據(jù)庫(kù)、執(zhí)行查詢以及獲取結(jié)果2012-09-09
php中實(shí)現(xiàn)可以返回多個(gè)值的函數(shù)實(shí)例
這篇文章主要介紹了php中實(shí)現(xiàn)可以返回多個(gè)值的函數(shù),實(shí)例分析了php使用數(shù)組返回多個(gè)值的技巧,需要的朋友可以參考下2015-03-03
用PHP獲取Google AJAX Search API 數(shù)據(jù)的代碼
用PHP獲取Google AJAX Search API 數(shù)據(jù)的代碼2010-03-03

