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 相关文章推荐
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
PHP仿盗链代码
Jun 03 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
解析PHP中empty is_null和isset的测试
Jun 29 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
Feb 04 PHP
php实现留言板功能
Mar 05 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
Laravel框架自定义分页样式操作示例
Jan 26 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常用函数汇总
2014/12/17 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
今天是星期几的4种JS代码写法
2013/09/17 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
python的绘图工具matplotlib使用实例
2014/07/03 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
python为什么会环境变量设置不成功
2020/06/23 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
职业教育毕业生求职信
2013/11/09 职场文书
自荐信格式技巧有哪些呢
2013/11/19 职场文书
编辑硕士自荐信范文
2013/11/27 职场文书
房地产销售计划书
2014/01/10 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
介绍长城的导游词
2015/01/30 职场文书
团拜会主持词
2015/07/04 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers