当前位置: 首页 » 产品 » 家居百货 » 正文

php如何使用curl实现ftp文件下载

放大字体  缩小字体 发布日期: 2024-11-29 11:44   来源:http://www.baidu.com/  作者:无忧资讯  浏览次数:27
核心提示:  不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用ftp的客户端下载很快,所以换了curl的下载方式,速度正常  fu

  不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用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);//超时时间

  //通过这个函数设置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){

  return true;

  }else{

  unlink($fileSavePath);//如果下载失败,但是本地open了这个文件,所以要删除

  return false;

  }

  }

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

 
 
[ 产品搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

 

 
推荐图文
推荐产品
点击排行
    行业协会  备案信息  可信网站