如果您想在自己的网站页面实现文件上传功能,本文为您介绍通过PHP上传程序配置网页上的文件上传功能的方法。
前提条件
已安装FileZilla客户端。您可以单击FileZilla官网下载FileZilla客户端。
本文以FileZilla 3.59.1版本为例,请您以实际使用的FileZilla版本页面显示为准。
背景信息
本文提供的PHP上传程序属于实现网页文件上传功能的一种简单样例,包含php-upload.htm和php-upload.php两个文件。您也可以参考该样例中的代码编写自己的PHP上传程序,配置网页中不同风格的文件上传功能。
使用限制
本文仅适用于Linux操作系统云虚拟主机。
本示例中网站页面支持上传的文件大小小于50 KB。
本文上传的测试文件不支持中文命名形式,建议该文件采用英文形式进行命名。
操作步骤
打开代码编辑器(例如EditPlus)。
说明您也可以根据自己的编程习惯选择其他代码编辑器。
分别复制如下示例代码并保存为php-upload.htm和php-upload.php文件。
重要保存文件时,请您选择编码格式为ANSI格式,否则会引起乱码情况,如下图所示。
php-upload.htm文件的参考示例如下所示:
<html> <body> <form action="php-upload.php" method="post" enctype="multipart/form-data"> <label for="file">文件名称:</label> <input type="file" name="file" id="file" /> <input type="submit" name="submit" value="上传文件" /> </form> </body> </html>
php-upload.php文件的参考示例如下所示:
<?php if ($_FILES["file"]["size"] < 50000) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists($_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]); echo "Stored in: " . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?>
使用FileZilla连接云虚拟主机。
具体操作,请参见使用FileZilla管理文件。
创建任意目录(例如test),用于存放php-upload.htm和php-upload.php文件。
在云虚拟主机站点根目录/htdocs下的空白位置,右键单击鼠标,单击创建目录(C),创建任意目录(例如test)。
在创建目录对话框中,请输入将要创建的目录名(例如/htdocs/test),单击确定(O)。
设置新建目录的读取、写入和执行权限。
右键单击test目录后,单击文件权限(F)。
在改变文件属性页面,选中所有读取、写入和执行权限后,单击确定(O)。
文件的权限设置如下图所示:
选择本地主机上保存的php-upload.htm和php-upload.php文件,通过FileZilla上传到刚才创建的test目录中。
在浏览器中访问
http://您的域名/test/php-upload.htm
,如下图所示。单击选择文件,在弹出的对话框中选择您需要上传的测试文件。
说明本步骤以testfile.txt测试文件为例,您也可以选择其他类型的文件进行上传测试。
单击上传文件。
本示例中文件上传成功如下图所示,页面会显示上传的文件名称、文件类型以及文件大小等信息。您可以在网站目录/htdocs/test中查看到已上传的testfile文件。
说明文件上传过程中,在PHP的临时文件夹会创建一个上传文件的临时副本,该临时副本会在程序运行结束时消失,并且会被自动保存在网站目录/htdocs/test中。