萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php使用curl實現ftp文件下載功能實例代碼

php使用curl實現ftp文件下載功能實例代碼

這篇文章主要為大家詳細介紹了php使用curl實現ftp文件下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了php實現ftp文件下載功能,供大家參考,具體內容如下

不知道為什麼用正常的ftp_get函數下載文件速度特別慢,但是用ftp的客戶端下載很快,所以換了curl的下載方式,速度正常

 

 代碼如下復制代碼

functionfile_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);//超時時間

  //通過這個函數設置ftp的用戶名和密碼,沒設置就不需要!

  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){

    returntrue;

   }else{

    unlink($fileSavePath);//如果下載失敗,但是本地open了這個文件,所以要刪除

    returnfalse;

   }

 

}

 

測試下載小文件是正常的,但是如果網速很慢,下載大文件時候,會報一個ftp timeout的錯誤,目前還在不知道是哪裡配置問題,還是什麼問題。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本網站。

copyright © 萬盛學電腦網 all rights reserved