sanqiyi

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

    

/**
     * 根据$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;
    }

 

分类:

技术点:

相关文章:

  • 2021-11-17
  • 2022-12-23
  • 2021-06-11
  • 2022-01-25
  • 2022-12-23
  • 2021-07-21
  • 2022-02-25
  • 2022-01-24
猜你喜欢
  • 2021-12-07
  • 2021-10-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-05
  • 2021-11-24
  • 2022-12-23
相关资源
相似解决方案