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;
    }

 

转载于:https://www.cnblogs.com/sanqiyi/p/9591381.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值