设为首页收藏本站language 语言切换
查看: 1260|回复: 0
收起左侧

PHP的FTP学习(三)

[复制链接]
发表于 2010-2-24 13:42:19 | 显示全部楼层 |阅读模式
现在,我们已经接触了PHP关于FTP的大量函数,但这仅仅只是函数,离我们的目标还远远不够,要显示出这些函数的真正力量,我们应该建立一个程序,这个程序能以WEB方式上传,下载文件---这就是我们将要做的! <BR><BR>在我们进入代码前,我想要告诉大家的是,这个例子仅仅只是为了向大家解释PHP的各种FTP函数的使用,很多方面还不够完善,比如说,错误分析等,至于你想应用到你自己的程序中,你应该进行一些修改! <BR><BR>程序包括以下几个文件: <BR>index.html - 登录文件 <BR><BR>actions.php - 程序必需的FTP代码 <BR><BR>include.php - 程序主界面,它显示文件列表和控制按钮。 <BR><BR>让我们从 "index.html"开始吧:  <BR>-------------------------------------------------------------------------------- <BR>&lt;table border=0 align=center&gt; <BR>&lt;form action="actions.php" method=post&gt; <BR>&lt;input type=hidden name=action value=CWD&gt; <BR>&lt;tr&gt; <BR>&lt;td&gt; <BR>Server <BR>&lt;/td&gt; <BR>&lt;td&gt; <BR>&lt;input type=text name=server&gt; <BR>&lt;/td&gt; <BR>&lt;/tr&gt; <BR><BR>&lt;tr&gt; <BR>&lt;td&gt; <BR>User <BR>&lt;/td&gt; <BR>&lt;td&gt; <BR>&lt;input type=text name=username&gt; <BR>&lt;/td&gt; <BR>&lt;/tr&gt; <BR><BR>&lt;tr&gt; <BR>&lt;td&gt; <BR>assword <BR>&lt;/td&gt; <BR>&lt;td&gt; <BR>&lt;input type=password name=password&gt; <BR>&lt;/td&gt; <BR>&lt;/tr&gt; <BR><BR>&lt;tr&gt; <BR>&lt;td colspan=2 align=center&gt; <BR>&lt;input type="submit" value="Beam Me Up, Scotty!"&gt; <BR>&lt;/td&gt; <BR>&lt;/tr&gt; <BR><BR>&lt;/form&gt; <BR>&lt;/table&gt; <BR>-------------------------------------------------------------------------------- <BR>这是一个登录表单,有一个服务器名称、用户名、密码,输入框。输入的变量将会被存到$server, $username 和 $password 变量中,表单提交后,调用actions.php,它将初始化FTP联接。 <BR><BR>注意那个“hidden” 它传给action.php一个变量$action ,值为CWD。 <BR><BR><BR>这是action.php文件的源码: <BR>-------------------------------------------------------------------------------- <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;basefont face=Arial&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR><BR>&lt;!-- the include.php interface will be inserted into this page --&gt; <BR><BR>&lt;? <BR><BR>//检查表单传来的数据,不全则报错,要想程序完善的话,这里应该有更全的输入检测功能 <BR>if (!$server || !$username || !$password) <BR>{ <BR>echo "提交数据不全!"; <BR>} <BR>else <BR>{ <BR>// keep reading <BR>} <BR><BR>?&gt; <BR><BR>&lt;/body&gt; <BR>&lt;/html&gt; <BR>-------------------------------------------------------------------------------- <BR><BR><BR>接下来是变量 "actions". 程序允许以下的action: <BR><BR>"action=CWD" <BR><BR>改变工作目录 <BR><BR>"action=Delete" <BR><BR>删除指定文件 <BR><BR>"action=Download" <BR><BR>下载指定文件 <BR><BR>"action=Upload" <BR><BR>上传指定文件 <BR><BR>如果你仔细检查文件include.php,在里面包括一个HTML界面,你将会看到,它包括许多表单,每一个指向一个特定的功能,每一个表单包含一个field(通常隐藏) ,当表单提交,相应的功能将被执行。 <BR><BR>例如:按下“删除”,"action=Delete"就被传送给"actions.php"  <BR><BR>为了操作这四个功能,actions.php中代码如下:   <BR>-------------------------------------------------------------------------------- <BR>&lt;? <BR>// action: 改变目录 <BR>if ($action == "CWD") <BR>{ <BR>// 具体代码 <BR>} <BR><BR>// action: 删除文件 <BR>else if ($action == "Delete") <BR>{ <BR>// 具体代码 <BR>} <BR>// action: 下载文件 <BR>else if ($action == "Download") <BR>{ <BR>// 具体代码 <BR>} <BR>// action: 上传文件 <BR>else if ($action == "Upload") <BR>{ <BR>// 具体代码 <BR>} <BR><BR>?&gt; <BR>-------------------------------------------------------------------------------- <BR>以上的具体代码将会实现指定的功能,并退出循环,它们都包含以下步骤: <BR><BR>-------------------------------------------------------------------------------- <BR>通过定制的函数联接并登录FTP服务器 <BR>connect(); <BR><BR>转向适当的目录 <BR><BR>执行选择的功能 <BR><BR>刷新列表,以察看改变的结果 <BR><BR>通过include("include.php"),显示文件列表和控制按钮 <BR><BR>关闭联接 <BR>-------------------------------------------------------------------------------- <BR>注意: <BR>以下功能支持多文件操作- 即 "action=Delete" 和 "action=Download" 它们使用FOR循环来实现。 <BR>变量$cdir 和 $here 将在每一阶段实时更新。 <BR><BR>现在终于到了我们的第三个文件,include.php 它为程序建立起一个用户界面。 <BR><BR>"include.php" 包含三个表单,一些PHP代码获取当前的目录列表并将它们存入三个变量 <BR>$files (包括当前目录下的文件), <BR>$file_sizes (相应的文件大小), <BR>and $dirs (包含子目录名) <BR><BR>第一个表单使用$dirs 产生一个下拉式目录列表,对应于“action=CWD”。 <BR><BR>第二个表单使用$files  $file_sizes创建一个可用的文件列表,每一个文件使用一个checkbox。这个表单的action对应于"action=Delete"_and_"action=Download" <BR><BR>第三个表单用来上传一个文件到FTP站点,如下: <BR>-------------------------------------------------------------------------------- <BR>&lt;form enctype="multipart/form-data" action=actions.php4 method=post&gt; <BR>... <BR>&lt;input type=file name=upfile&gt; <BR>... <BR>&lt;/form&gt; <BR>-------------------------------------------------------------------------------- <BR>当PHP以这种方式接收到一个文件名,一些变量就产生了,这些变量指定文件的大小,一个临时的文件名以及文件的类型,最初的文件名存在$upfile_name,一旦上传后文件名便存入$upfile中(这个变量是由PHP自己创建的) <BR>通过这些信息,我们就可以创建以下的语句了: <BR>-------------------------------------------------------------------------------- <BR>ftp_put($result, $upfile_name, $upfile, FTP_BINARY); <BR>--------------------------------------------------------------------------------
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-6 19:30 , Processed in 0.986004 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表