FTP操作类---拷贝、移动、删除文件/创建目录

<?php
/**
* 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )
* 时间:2006/5/9
* 作者:欣然随风
* QQ:276624915
*/
class class_ftp
{
     public $off; // 返回操作状态(成功/失败)

    public $conn_id; // FTP连接

     /**
      * 方法:FTP连接
      * @FTP_HOST -- FTP主机
      * @FTP_PORT -- 端口
      * @FTP_USER -- 用户名
      * @FTP_PASS -- 密码
      */
    function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)
     {
        $this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP服务器连接失败");
         @ftp_login($this->conn_id,$FTP_USER,$FTP_PASS) or die("FTP服务器登陆失败");
         @ftp_pasv($this->conn_id,1); // 打开被动模拟

    }

    /**
      * 方法:上传文件
      * @path -- 本地路径
      * @newpath -- 上传路径
      * @type -- 若目标目录不存在则新建
      */
    function up_file($path,$newpath,$type=true)
     {
         if($type) $this->dir_mkdirs($newpath);
        $this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);
         if(!$this->off) echo "文件上传失败,请检查权限及路径是否正确!";
     }

    /**
      * 方法:移动文件
      * @path -- 原路径
      * @newpath -- 新路径
      * @type -- 若目标目录不存在则新建
      */
    function move_file($path,$newpath,$type=true)
     {
         if($type) $this->dir_mkdirs($newpath);
        $this->off = @ftp_rename($this->conn_id,$path,$newpath);
         if(!$this->off) echo "文件移动失败,请检查权限及原路径是否正确!";
     }

    /**
      * 方法:复制文件
      * 说明:由于FTP无复制命令,本方法变通操作为:下载后再上传到新的路径
      * @path -- 原路径
      * @newpath -- 新路径
      * @type -- 若目标目录不存在则新建
      */
    function copy_file($path,$newpath,$type=true)
     {
        $downpath = "c:/tmp.dat";
        $this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下载

        if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";
        $this->up_file($downpath,$newpath,$type);
     }

    /**
      * 方法:删除文件
      * @path -- 路径
      */
    function del_file($path)
     {
        $this->off = @ftp_delete($this->conn_id,$path);
         if(!$this->off) echo "文件删除失败,请检查权限及路径是否正确!";
     }

    /**
      * 方法:生成目录
      * @path -- 路径
      */
    function dir_mkdirs($path)
     {
        $path_arr = explode(‘/‘,$path); // 取目录数组

        $file_name = array_pop($path_arr); // 弹出文件名

        $path_div = count($path_arr); // 取层数

        foreach($path_arr as $val) // 创建目录

        {
             if(@ftp_chdir($this->conn_id,$val) == FALSE)
             {
                $tmp = @ftp_mkdir($this->conn_id,$val);
                 if($tmp == FALSE)
                 {
                     echo "目录创建失败,请检查权限及路径是否正确!";
                     exit;
                 }
                 @ftp_chdir($this->conn_id,$val);
             }
         }
         for($i=1;$i<=$path_div;$i++) // 回退到根

        {
             @ftp_cdup($this->conn_id);
         }
     }

    /**
      * 方法:关闭FTP连接
      */
    function close()
     {
         @ftp_close($this->conn_id);
     }

}// class class_ftp end

/************************************** 测试 ***********************************

$ftp = new class_ftp(‘192.168.100.143‘,21,‘user‘,‘pwd‘); // 打开FTP连接
//$ftp->up_file(‘aa.txt‘,‘a/b/c/cc.txt‘); // 上传文件
//$ftp->move_file(‘a/b/c/cc.txt‘,‘a/cc.txt‘); // 移动文件
//$ftp->copy_file(‘a/cc.txt‘,‘a/b/dd.txt‘); // 复制文件
//$ftp->del_file(‘a/b/dd.txt‘); // 删除文件
$ftp->close(); // 关闭FTP连接

******************************************************************************/
?>

  详细说明:http://php.662p.com/thread-548-1-1.html

时间: 2024-08-01 22:11:13

FTP操作类---拷贝、移动、删除文件/创建目录的相关文章

FTP操作类

using System; using System.Collections.Generic; using System.Net; using System.IO; namespace HGFTP { /// <summary> /// FTP客户端操作类 /// </summary> public class FTPTools { #region 构造函数 /// <summary> /// 创建FTP工具 /// <para> /// 默认不使用SSL,

C# FTP操作类可用

public class FtpClient { #region 构造函数 /// <summary> /// 创建FTP工具 /// <para> /// 默认不使用SSL,使用二进制传输方式,使用被动模式 /// </para> /// </summary> /// <param name="host">主机名称</param> /// <param name="userId">

C#FTP操作类含下载上传删除获取目录文件及子目录列表等等

ftp登陆格式  : ftp://[帐号]:[密码]@[IP]:[端口] ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名 直接上代码吧,根据需要选择函数,可根据业务自己修改,如日志记录,提示等等 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net; using System.Windows.Forms; using

[转]C# FTP操作类

转自 http://www.cnblogs.com/Liyuting/p/7084718.html using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace ManagementProject { public class FTPHel

C# 运用FileInfo类创建、删除文件

通过FileInfo类,我们可以方便地创建出文件,并可以访问文件的属性同时还可以对文件进行打开文件.关闭文件.读写文件等基本的操作.下面的代码显示了如何创建一个文本文件并且去访问其创建时间.文件的绝对路径以及文件属性等文件信息,最后程序还给出了删除文件的方法.  FileInfo fi = new FileInfo(@"F:\Myprogram.txt");FileStream fs = fi.Create();Console.WriteLine("Creation Time

C# FTP操作类

C#语言: Codee#2416 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net; using System.Windows.Forms; using System.Globalization; namespace FtpLib {     public class FtpWeb     {         string ftpServerIP

java file 操作之创建、删除文件及文件夹

本文章向大家讲解java文件的基本操作,包括java创建文件和文件夹.java删除文件.java获取指定目录的全部文件.java判断指定路径是否为目录以及java搜索指定目录的全部内容等.请看下面实例. 创建文件File 的两个常量(File.separator.File.pathSeparator). 直接在windows下使用\进行分割是可以的.但是在linux下就不是\了.所以,要想使得我们的代码跨平台,更加健壮,所以,大家都采用这两个常量吧. public static void cre

(转)FTP操作类,从FTP下载文件

using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net; using System.Windows.Forms; namespace PCMDataImporter { /// <summary> /// 封装了FTP的两个操作:下载文件Download()和获取FTP服务器上文件列表信息GetFileList() /// </summary&

Windows10撤销操作Ctrl+z导致删除文件怎么办?

举例:新建了一个文件夹,并在里面新建了一个word,然后又复制了一个 然后想撤销这个复制的,使用快捷键Ctrl+Z撤销操作,但是电脑太卡了,多按了两下. 然后,副本消失了,其他文档以及新建文件夹都不见了,闻者伤心,见者流泪! 这个时候大部分人会去回收箱找对吧,但不幸的是这种情况回收箱里没有,这个时候如果你不去手贱的做一些多余的行为,使用Ctrl+Y或者右键点击撤销删除/恢复新建就能挽回撤销的文件. 再有一种人可能会像我一样手贱,发现文件误删了之后,一顿卵用没有的操作,直接把撤销的记录给覆盖掉了,