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 什么是PEAR?(第三篇)
Mar 19 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
Windows7下的php环境配置教程
Feb 28 PHP
php接口技术实例详解
Dec 07 PHP
详解PHP数据压缩、加解密(pack, unpack)
Dec 17 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
Apr 13 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按行读取文件时删除换行符的3种方法
2014/05/04 PHP
php中error与exception的区别及应用
2014/07/28 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
php微信公众平台开发类实例
2015/04/01 PHP
php常用表单验证类用法实例
2015/06/18 PHP
php实现json编码的方法
2015/07/30 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
FCK调用方法..
2006/12/21 Javascript
js类中获取外部函数名的方法
2007/08/19 Javascript
jQuery 表格工具集
2010/04/25 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
益模软件Java笔试题
2012/03/27 面试题
主办会计岗位职责
2014/03/13 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
2019思想汇报范文
2019/05/21 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL