当前位置:首页 > PHP教程 > php应用 > 列表

php使用curl实现ftp文件下载功能实例代码

发布:smiling 来源: PHP粉丝网  添加日期:2018-08-06 11:07:35 浏览: 评论:0 

本文实例为大家分享了php实现ftp文件下载功能,供大家参考,具体内容如下

不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用ftp的客户端下载很快,所以换了curl的下载方式,速度正常.

  1. functionfile_upload($ftpIp,$ftpUser,$ftpPwd,$path,$fileSavePath){ 
  2.   $curlobj= curl_init();//初始化 
  3.   //传入ftp的目标文件,如'ftp://192.168.3.1/test/1.jpg' 
  4.   <a href="/tags.php/curl_setopt/" target="_blank">curl_setopt</a>($curlobj,CURLOPT_URL,"ftp://".$ftpIp."/".$path); 
  5.   curl_setopt($curlobj,CURLOPT_HEADER,0);//不输出header 
  6.   curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,0); 
  7.   //time out after 300s 
  8.   curl_setopt($curlobj,CURLOPT_TIMEOUT,2000);//超时时间 
  9.   //通过这个函数设置ftp的用户名和密码,没设置就不需要! 
  10.   curl_setopt($curlobj,CURLOPT_USERPWD,$ftpUser.':'.$ftpPwd); 
  11.   
  12.   $outfile=<a href="/tags.php/fopen/" target="_blank">fopen</a>($fileSavePath,'w+');//保存到本地文件的文件名 
  13.   curl_setopt($curlobj,CURLOPT_FILE,$outfile); 
  14.   
  15.   $rtn= curl_exec($curlobj); 
  16.   if(curl_errno($curlobj)){ 
  17.     writeLog('Curl error: '. curl_error($curlobj)); 
  18.   } 
  19.   fclose($outfile); 
  20.   curl_close($curlobj); 
  21.    if($rtn== 1){ 
  22.     returntrue; 
  23.    }else
  24.     unlink($fileSavePath);//如果下载失败,但是本地open了这个文件,所以要删除 
  25.     returnfalse; 
  26.    } 
  27.  //phpfensi.com 

测试下载小文件是正常的,但是如果网速很慢,下载大文件时候,会报一个ftp timeout的错误,目前还在不知道是哪里配置问题,还是什么问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。

Tags: phpcurl ftp文件下载

分享到: