(实用篇)PHP ftp上传文件操作类

(实用篇)PHP ftp上传文件操作类

<?php
/**
 * 作用:FTP操作类( 拷贝、移动、删除文件/创建目录 )
 */
class class_ftp
{
	public $off; // 返回操作状态(成功/失败)
	public $conn_id; // FTP连接
	const FTP_HOST='*.*.*.*';
	const FTP_PORT='21';
	const FTP_USER='*******';
	const FTP_PASS='*******';
	/**
	* 方法:FTP连接
	* @FTP_HOST -- FTP主机
	* @FTP_PORT -- 端口
	* @FTP_USER -- 用户名
	* @FTP_PASS -- 密码
	*/
	function __construct()
	{
	$this->conn_id = @ftp_connect(self::FTP_HOST,self::FTP_PORT) or die("FTP服务器连接失败");
	@ftp_login($this->conn_id,self::FTP_USER,self::FTP_PASS) or die("FTP服务器登陆失败");
	@ftp_pasv($this->conn_id,1); // 打开被动模拟
	}
	/**
	* 方法:上传文件
	* @path -- 本地路径
	* @newpath -- 上传路径
	* @type -- 若目标目录不存在则新建
	 */
	 function up_file($path,$newpath,$type=true)
	 {
	 var_dump($this->conn_id);exit;
	 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连接
	 ******************************************************************************/
?>

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/1416.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2016年10月22日 00:31
下一篇 2016年10月22日 10:01

相关推荐

  • php如何设定启用php缩写(php.ini、short_open_tag)

    php 设定启用 php缩写(php.ini、short_open_tag)本教学使用环境介绍伺服器端:Ubuntu 18.04 LTS 资料库:Mariadb 10.1.34(Mysql) 语言版本:php 7.3 本机端:MacOS High Sierra启用 php 缩写能节省一些写法,虽…

    2022年6月19日
    0130
  • 教你filezilla干嘛用的。

    【filezilla干嘛用的】 FileZilla是一个免费、开源且跨平台的FTP客户端软件,主要用于文件传输,它支持多种协议,如FTP、SFTP、SCP等,可以方便地在本地和远程服务器之间进行文件的上传和下载,FileZilla的出现,使…

    2024年6月18日
    02
  • PHP中的服务器负载均衡。

    在当前网络高并发的环境中,服务器的负载均衡变得越来越重要。负载均衡通过分配工作负载到多个服务器上,可以加强服务器容量和性能,防止单个服务器在高流量和请求时崩溃,从而提高网站的可靠性,可扩展性和可用性…

    2023年5月28日
    05
  • PHP中的自动化部署工具。

    PHP作为一种广泛应用的编程语言,它的应用范围十分广泛。无论是个人网站还是大型企业应用,PHP都有着相应的应用场景。然而,在开发PHP应用过程中,如何进行自动化部署是十分重要的。因为自动化部署可以极大地减少人…

    2023年5月30日
    04
  • 如何使用PHP开发优秀的直播功能。

    如何使用PHP开发优秀的直播功能?随着网络技术的不断发展,直播功能在移动互联网时代得到广泛应用,并在短时间内成为了一种新兴的在线流媒体技术。无论是在线教育、商务、娱乐、还是社交网络,直播服务都已经成为这…

    2023年5月28日
    05
  • 实例讲解php提交表单关闭layer弹窗iframe

    介绍一款非常好用的前端弹窗插件:layer 官网地址:http://layer.layui.com/根据官方的API:layer的iframe弹窗//iframe层-父子操作 layer.open({ type: 2, area: ['700px', '530px'], fix: fal…

    2022年6月17日
    0166
  • PHP如何实现微信小程序的数据统计。

    随着微信小程序的普及,越来越多的企业和开发者开始使用微信小程序来提供服务。因此,对于开发者来说,了解微信小程序的数据统计非常重要。本文将介绍如何使用PHP开发微信小程序的数据统计。一、了解微信小程序的数…

    2023年6月3日
    03
  • 说说如何查看虚拟主机带宽信息。

    要查看虚拟主机的带宽信息,首先需要打开虚拟主机的任务管理,然后找到联网选项。此处会显示您的使用带宽,例如10Gps*0.01%,这就是您当前的带宽使用情况。通常用户可以在服务商官网上看到关于带宽大小的介绍。但需…

    2024年7月7日
    02

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息