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

时间: 2024-10-09 21:43:06

ftp 传文件完整代码(二)的相关文章

Python之ftp下载文件测试代码

IT审计中有一个最多的执行步骤就是取证.最近的项目过程中,有需要验证ftp服务机密性的需要,就写了一个ftp访问并下载文件的脚本. 此步骤实现目的有三: 1.ftp是否可以匿名访问到敏感信息. 2.在渗透人员拥有低等.中等技术水平前提下,目标ftp服务器的日志记录.入侵检测等是否会产生记录.阻断及预警功能. 3.也是最重要的,在上述条件下,此举基于可渗透时间.现行部署条件.应对防御未来直接支出代价.数据丢失严重性综合得出判断结论,并据此给出建议. 1 #coding=utf-8 2 import

PHP上传文件功代码练习

前端: <html> <head><title>upload file</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> </head> <body> <form action="uploadtest.php" method="post"

HTTP - PUT 上传文件/Shell (二)

上一篇文章 HTTP - PUT 上传文件/Shell 讲到自己搭了一个环境,去测试HTTP - PUT上传Shell.最近又遇到几个PUT上传的例子,也成功上传了几次,来分享一下思密达. 0x00 判断是否允许HTTP PUT 发送这样的一份报文到服务器,查看服务器返回: OPTIONS / HTTP/1.1 Host: 192.168.9.151:8086 Connection: Keep-alive Accept: text/plain User-Agent: Mozilla/5.0 (W

通过ftp传文件

ftp: 1:windows防火墙和虚拟机linux防火墙 首先都确保关闭. 2:笔记本不能连无线网. 3:笔记本网络IP 设置一定不能和开发板重叠,但是网关一定要一样. 4:VM设置网络的时候,选择桥接. fedora21安装vsftpd : yum install vsftpd 启动fedora的ftp服务器 : service vsftpd start 连接开发板: 事先查看好开发板ip,比如192.168.1.230 ftp 192.168.1.230 连接 若在linux开启ftp当前

FTP传文件弊端多,更好用的解决方案来了!

FTP是企业在管理和传输文件过程中最常用的软件系统,随着业务规模和文件体量的快速增长,在FTP的应用 实践中,许多用户已经发现FTP的实际可用度越来越低.基于FTP架构的数据传输模式已经无法满足企业的应用需求: FTP软件没有内置加速技术,传输巨型文件和海量文件时需要很长时间,过程存在无故中断.传输文件内容不一致.传输文件丢失等问题. FTP传输的过程没有可视化的显示记录,没有便于理解的审计日志根据. 由于公有云的灵活性,企业在云上的资产也往往根据业务支撑的不同需求,分布于不同的云服务商或者同一

Linux下ftp传文件相关。

1.首先检查或者下载ftp,vsftpd安装包是否下载.如果没有下载方式为 yum -y install ftp         ( ftp在linux这里只是个登录的客户端) yum -y install vsftpd    (服务端主要还是vsftpd ) 2.相关错误解决 Connected to 192.168.10.100. 220 (vsFTPd 2.0.5) User (192.168.10.100:(none)): oracle 331 Please specify the pa

上传文件后台代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;using System.Data;using System.Data.SqlClient;using Common;using BLL;namespace CRM.UI{ public partial

上传文件按钮代码示例

input file上传按钮的美化思路是,先把之前的按钮透明度opacity设置为0,然后,外层用a标签或其他标签包裹,就实现了美化功能<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> .a-upload { position: relative; dis

15. 利用ajax jquery 上传文件

通过jQuery Ajax使用FormData对象上传文件 字数664 阅读26857 评论18 喜欢18 FormData对象,是可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". 在 Mozilla Developer 网站 使用FormData对象 有详尽的FormData对象使用说明. 但上传文件部分只有底层的XMLHttpRequest对象发送上传请求,那么怎么通过jQuery的Ajax上传呢? 本文将介绍通过jQuery使用F