zoukankan      html  css  js  c++  java
  • ftp 传文件完整代码(二)

    一、数据库查询数据 根据要求生成文件

        

    /**
         * 根据$date参数,生成账单文件名。
         *
         * @param DateTime $date 日期。
         *
         * @return string
         */
        protected function _billFileName($date)
        {
            # 账单文件名规范:DZ+[渠道ID]+[八位日期 YYYYMMDD],渠道代码由BOSS系统提供。例如:DZ800020110916
            return sprintf('DGDZ%s%s', $this->appId, date('Ymd', strtotime($date)));
        }
    
    
        /**
         * 根据$fileName参数,生成路径。
         *
         * @param string $fileName 文件名。
         *
         * @return string
         */
        protected function _billRealFileName($fileName)
        {
             return SKIHAT_PATH_APP_MODULES . '/docs/' . $fileName;
            //return SKIHAT_PATH_APP_PUBLICS . '/youjia/' . $fileName;
        }

    二 、上传ftp  

    /**
         * @const string 渠道代码
         */
        public $appId = 'test00000096868';
    
        /**
         * @const string ftp密码
         */
        public $ftpUser = 'ftp://172.16.84.26/';
    
        /**
         * @const string ftp密码
         */
        public $ftpPWD = 'yjpt:yjpt2018.';
      
         /**
         * 将$fileName参数,将指定的对账文件上传到FTP地址。
         *
         * @param string $fileName 文件名。
         *
         * @return bool
         */
        public function uploadComboBillFile($fileName)
        {
            # 获取真实文件名。
            $realFile = $this->_billRealFileName($fileName);
    
            if (is_file($realFile) == false) {
                return $this->error($this->errorBillFile);
            }
    
            $fileRes = fopen($realFile, 'r');
    
            if ($fileRes == false) {
                return $this->error($this->errorBillFile);
            }
    
            # 使用curl上传文件到FTP目录。
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $this->ftpUser . $fileName);
            curl_setopt($curl, CURLOPT_HEADER, 0);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
            # 设置超时时间
            curl_setopt($curl, CURLOPT_TIMEOUT, 300);
            curl_setopt($curl, CURLOPT_USERPWD, $this->ftpPWD);
    
            # 设置上传参数。
            curl_setopt($curl, CURLOPT_UPLOAD, 1);
            curl_setopt($curl, CURLOPT_INFILE, $fileRes);
            curl_setopt($curl, CURLOPT_INFILESIZE, filesize($realFile));
    
            # 执行上传业务
            $rtn = curl_exec($curl);
            $error = curl_error($curl);
    
            fclose($fileRes);
            curl_close($curl);
            return $error ? $this->error($error) : true;
        }
  • 相关阅读:
    三、MyCat主要配置介绍
    二、mycat15种分片规则
    一、mycat介绍
    SpringBoot使用JdbcTemplate批量保存
    linux发布常用命令
    ROS 系统架构及概念
    ROS 在 Ubuntu 18.04 安装
    利用 Skywalking 搭建 APM(应用性能管理)— 安装与配置
    elasticsearch 集群搭建及启动常见错误
    Git 基本操作
  • 原文地址:https://www.cnblogs.com/sanqiyi/p/9591381.html
Copyright © 2011-2022 走看看