• PHP ftp使用


    本文章来总结几个利用php中的ftp功能来实现通过FTP上传文件,有需要学习的朋友可参考参考。ftp_get() 函数从 FTP 服务器上下载一个文件。若成功则返回 true,失败则返回 false。语法ftp_get(ftp_connectio

    本文章来总结几个利用php中的ftp功能来实现通过FTP上传文件,有需要学习的朋友可参考参考。
     

    ftp_get() 函数从 FTP 服务器上下载一个文件。

    若成功则返回 true,失败则返回 false。

    语法
    ftp_get(ftp_connection,local,remote,mode,resume)


    ftp_connect() 函数建立一个新的 FTP 连接。

    若成功,则返回一个连接标识,否则返回 false。

    语法
    ftp_connect(host,port,timeout)


    ftp_login() 函数登录 FTP 服务器。

    若成功则返回 true,失败则返回 false 并发出一个警告。

    语法
    ftp_login(ftp_connection,username,password)

    三个函数己经介绍好了,现在开始了。

    例1

     代码如下 复制代码

    $ftp_server = "*.*.*.*";
    $ftp_user = "lu";
    $ftp_pass = "love you";

    // set up a connection or die
    $conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

    $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

    if ((!$conn_id) || (!$login_result)) {
            echo "FTP connection has failed!";
            echo "Attempted to connect to $ftp_server for user $ftp_user_name";
            exit;
        } else {
            echo "Connected to $ftp_server, for user $ftp_user_name";
        }

    // try to login
     $filename=date('Ymd').".xml";
     $source_file="/usr/local/IVR/sendwireless/xml/data/".$filename;  //源地址
     echo $source_file;
     $destination_file="/ITC/admin/logstat/ftplog/".$filename;  //目标地址
     $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY) or die("Couldn't connect to $ftp_server");
     ftp_quit($conn_id);

     if (!$upload) {
            echo "FTP upload has failed!";
        } else {
            echo "Uploaded $source_file to $ftp_server as $destination_file";
        }
    ftp_close($conn_id);


    上传时先传至本地对文件作必要的修改,如加水印等等操作,然后再通过FTP传至远程服务器.

    例2:

     代码如下 复制代码

    //上传图片

    if ($_FILES['pic']['name'])
    {
    $file_path='/opt/www/img/';
    $pic = upload('pic', $filename, 'jpg|jpeg|gif|bmp|png', $file_path);
    if(!$pic)
    {
    echo "图片上传失败!";
    exit;
    }
    require_once(ROOT_PATH . 'Lib/Class/Ftp.class.php');
    $ftp = new ftp("127.0.0.1","gamezeroftp","123456","/opt/www");
    $localfile='/opt/www/img/'.$pic;
    $remotefile='/opt/www/gamepics/'.$pic;
    $ftpput = $ftp->put($localfile, $remotefile); //FTP上传原图到远程服务器
    if(!$ftpput){
    echo "上传图片到远程服务器失败!";
    }
    $ftp->bye(); //关闭FTP连接
    }
    附上FTP操作类:


    ftpUrl=$ftpUrl;
    }
    if($ftpUser){
    $this->ftpUser=$ftpUser;
    }
    if($ftpPass){
    $this->ftpPass=$ftpPass;
    }
    if($ftpUrl){
    $this->ftpDir=$ftpDir;
    }
    if ($this->ftpR = ftp_connect($this->ftpUrl, 21)) {
    if (ftp_login($this->ftpR, $this->ftpUser, $this->ftpPass)) {
    if (!empty($this->ftpDir)) {
    ftp_chdir($this->ftpR, $this->ftpDir);
    }
    ftp_pasv($this->ftpR, true);//R 启用被动模式;
    $status = 1;
    } else {
    $status = 3;
    }
    } else {
    $status = 2;
    }
    }
    //R 切换目录;
    function cd($dir) {
    return ftp_chdir($this->ftpR, $dir);
    }
    //R 返回当前路劲;
    function pwd() {
    return ftp_pwd($this->ftpR);
    }
    //R 创建目录
    function mkdir($directory) {
    return ftp_mkdir($this->ftpR,$directory);
    }
    //R 删除目录
    function rmdir($directory) {
    return ftp_rmdir($this->ftpR,$directory);
    }
    //R 上传文件;
    function put($localFile, $remoteFile = '') {
    if ($remoteFile == '') {
    $remoteFile = end(explode('/', $localFile));
    }
    $res = ftp_nb_put($this->ftpR, $remoteFile, $localFile, FTP_BINARY);
    while ($res == FTP_MOREDATA) {
    $res = ftp_nb_continue($this->ftpR);
    }
    if ($res == FTP_FINISHED) {
    return true;
    } elseif ($res == FTP_FAILED) {
    return false;
    }
    }
    //R 下载文件;
    function get($remoteFile, $localFile = '') {
    if ($localFile == '') {
    $localFile = end(explode('/', $remoteFile));
    }
    if (ftp_get($this->ftpR, $localFile, $remoteFile, FTP_BINARY)) {
    $flag = true;
    } else {
    $flag = false;
    }
    return $flag;
    }
    //R 文件大小;
    function size($file) {
    return ftp_size($this->ftpR, $file);
    }
    //R 文件是否存在;
    function isFile($file) {
    if ($this->size($file) >= 0) {
    return true;
    } else {
    return false;
    }
    }
    //R 文件时间
    function fileTime($file) {
    return ftp_mdtm($this->ftpR, $file);
    }
    //R 删除文件;
    function unlink($file) {
    return ftp_delete($this->ftpR, $file);
    }
    function nlist($dir = '/service/resource/') {
    return ftp_nlist($this->ftpR, $dir);
    }
    //R 关闭连接;
    function bye() {
    return ftp_close($this->ftpR);
    }
    }
    ?>

  • 相关阅读:
    25.Zabbix入门必备
    6.Ansible Roles角色实战
    5.Ansible Jinja2 模板
    4.Ansible Task控制
    3.Ansible varialbes实战
    2.Ansible Playbook剧本
    1.Ansible自动化管理工具
    网站架构面试题必备
    winsows CMD及Linux命令大全 欢迎补充
    Oracle查询表空间
  • 原文地址:https://www.cnblogs.com/wenxinphp/p/5880931.html
Copyright © 2020-2023  润新知