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 相关文章推荐
一个多文件上传的例子(原创)
Oct 09 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
Win下如何安装PHP的APC拓展
Aug 07 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
form自动提交实例讲解
Jul 10 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP常量define和const的区别详解
May 18 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 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
博士208HAF收音机实习报告
2021/03/02 无线电
五款PHP代码重构工具推荐
2014/10/14 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
javascript动画效果类封装代码
2007/08/28 Javascript
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
详细分析Python collections工具库
2020/07/16 Python
Python实现一个优先级队列的方法
2020/07/31 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
高山背包:High Sierra
2017/11/23 全球购物
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
什么是.net
2015/08/03 面试题
新学期开学寄语
2014/01/18 职场文书
秸秆管理实施方案
2014/03/15 职场文书
理发店策划方案
2014/06/05 职场文书
2015年电工工作总结
2015/04/10 职场文书
教师节班会开场白
2015/06/01 职场文书
让生命充满爱观后感
2015/06/08 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
图文详解nginx日志切割的实现
2022/01/18 Servers