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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
在字符串中把网址改成超级链接
Oct 09 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
Nov 04 PHP
php制作的简单验证码识别代码
Jan 26 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
常用PHP封装分页工具类
Jan 14 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP和MYSQL实现分页导航思路详解
Apr 11 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
PHP的开发框架的现状和展望
2007/03/16 PHP
PHP chmod 函数与批量修改文件目录权限
2010/05/10 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
JavaScript利用HTML DOM进行文档操作的方法
2016/03/28 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
nodejs简单抓包工具使用详解
2019/08/23 NodeJs
python操作xml文件示例
2014/04/07 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
Python如何实现邮件功能
2020/05/27 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
公司综合部的成员自我评价分享
2013/11/05 职场文书
总经理办公室主任岗位职责
2013/11/12 职场文书
采购员的工作职责
2013/12/26 职场文书
园林毕业生自我鉴定范文
2013/12/29 职场文书
报关员个人职业生涯规划书
2014/03/12 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
考勤制度通知
2015/04/25 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python