php curl ftp下载文件,php使用curl实现ftp文件下载功能的方法

这篇文章主要为大家详细介绍了php使用curl实现ftp文件下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

具体内容如下

不知道为什么用正常的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的错误,目前还在不知道是哪里配置问题,还是什么问题。

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值