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;
        }
  • 相关阅读:
    P4178 Tree
    CF437D The Child and Zoo
    CF1032G Chattering ST表+倍增
    P4165 [SCOI2007]组队 推柿子+差分
    P1450 [HAOI2008]硬币购物 容斥原理+完全背包
    P6275 [USACO20OPEN]Sprinklers 2: Return of the Alfalfa P 轮廓线DP
    P6009 [USACO20JAN]Non-Decreasing Subsequences P 矩阵优化DP
    P2605 [ZJOI2010]基站选址 线段树优化DP
    P5597 【XR-4】复读 思维题 +二叉树合并
    P5304 [GXOI/GZOI2019]旅行者 最短路+位运算优化
  • 原文地址:https://www.cnblogs.com/sanqiyi/p/9591381.html
Copyright © 2011-2022 走看看