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


Posted in PHP onMay 16, 2017

本文实例为大家分享了php实现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的错误,目前还在不知道是哪里配置问题,还是什么问题。

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

PHP 相关文章推荐
header()函数使用说明
Nov 23 PHP
PHP扩展编写点滴 技巧收集
Mar 09 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
php缓存技术详细总结
Aug 07 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
php随机获取金山词霸每日一句的方法
Jul 09 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 #PHP
php使用curl实现简单模拟提交表单功能
May 15 #PHP
PHP读取Excel类文件
May 15 #PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 #PHP
PHP从数组中删除元素的四种方法实例
May 12 #PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 #PHP
php中时间函数date及常用的时间计算
May 12 #PHP
You might like
PHP 如何向 MySQL 发送数据
2006/10/09 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
JavaScript 的继承
2011/10/01 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
js脚本实现数据去重
2014/11/27 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
Python学习教程之常用的内置函数大全
2017/07/14 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
Puppeteer使用示例详解
2019/06/20 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
北大自主招生自荐信
2013/10/19 职场文书
应届大学生求职信
2013/12/01 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
教研活动主持词
2015/07/03 职场文书