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

5年以前  |  阅读数:907 次  |  编程语言:PHP 

本文实例为大家分享了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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例