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

本文实例为大家分享了php实现ftp文件下载功能,供大家参考,具体内容如下,不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用ftp的客户端下载很快,所以换了curl的下载方式,速度正常
  1. function file_upload($ftpIp,$ftpUser,$ftpPwd,$path,$fileSavePath){
  2.   $curlobj = curl_init();//初始化
  3.   //传入ftp的目标文件,如'ftp://192.168.3.1/test/1.jpg'
  4.   curl_setopt($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.   $outfile = fopen($fileSavePath,'w+'); //保存到本地文件的文件名 
  12.   curl_setopt($curlobj,CURLOPT_FILE,$outfile);
  13.   $rtn = curl_exec($curlobj);
  14.   if(curl_errno($curlobj)){
  15.     writeLog('Curl error: ' . curl_error($curlobj));
  16.   }
  17.   fclose($outfile);
  18.   curl_close($curlobj);
  19.    if($rtn == 1){
  20.     return true;
  21.    }else{
  22.     unlink($fileSavePath);//如果下载失败,但是本地open了这个文件,所以要删除
  23.     return false;
  24.    }
  25. }

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

  • weinxin
  • weinxin
  • IT小天博客
  • 小天既不是大神,也不是技术大咖,喜欢折腾,喜欢代码的世界,喜欢分享自己的生活乐趣和学习经验,关注互联网发展,关注网站建设。
  • GitHub 微博 微信 球球Q 邮箱

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 暧昧 3

      [签到]成功!时间:15:49:10 ,今天你签了吗