一、概述
在现代Web应用程序中,文件上传功能是普遍存在的需求。在PHP中,可以使用move_uploaded_file函数来保存上传文件。本文将详细介绍如何使用move_uploaded_file函数保存上传文件。
二、上传文件
在使用move_uploaded_file函数前,必须获得上传文件。可以通过HTML的form表单,在页面中添加<input type="file" name="file">元素来实现。在PHP脚本中,可以使用$_FILES全局数组来获得上传文件信息。例如,要获得名为file的上传文件的文件名和临时文件名,可以使用以下代码:
$filename = $_FILES['file']['name']; $tmpname = $_FILES['file']['tmp_name'];
其中,$filename存储了上传文件的原始文件名,$tmpname存储了服务器上保存上传文件的临时文件名。需要注意的是,上传文件的大小、类型等信息也可以通过$_FILES数组获取。
三、保存上传文件
在获得上传文件后,就可以使用move_uploaded_file函数来保存上传文件。move_uploaded_file函数接受两个参数,分别是上传文件的临时文件名和保存路径。例如,以下代码将上传文件保存在/uploads目录中:
$dest = '/uploads/' . $filename; move_uploaded_file($tmpname, $_SERVER['DOCUMENT_ROOT'] . $dest);
其中,$dest变量存储了保存路径,使用DOCUMENT_ROOT可以获得网站根目录的绝对路径。move_uploaded_file函数将上传文件从临时目录移动到指定目录中。
四、完整示例代码
下面是一个完整的文件上传示例代码:
<html> <head> <title>文件上传</title> </head> <body> <form enctype="multipart/form-data" method="POST" action="upload.php"> 选择一个文件上传: <input name="file" type="file" /><br /> <input type="submit" value="上传文件" /> </form> </body> </html>
在上面的代码中,使用了enctype="multipart/form-data"来指定表单支持文件上传,method="POST"指定表单数据使用POST方法提交到"upload.php"脚本中处理。以下是"upload.php"脚本的示例代码:
<?php if ($_FILES["file"]["error"] > 0) { echo "上传错误: " . $_FILES["file"]["error"] . "<br />"; } else { // 获得上传文件信息 $filename = $_FILES['file']['name']; $tmpname = $_FILES['file']['tmp_name']; // 保存上传文件 $dest = '/uploads/' . $filename; move_uploaded_file($tmpname, $_SERVER['DOCUMENT_ROOT'] . $dest); echo "上传成功,保存在: " . $dest . "<br />"; } ?>
在上面的代码中,首先检查上传是否有错误,如果有错误,输出错误信息。否则,获得上传文件信息,保存上传文件,并输出保存路径。
五、总结
本文详细介绍了如何使用move_uploaded_file函数保存上传文件。实现文件上传功能不仅是Web应用程序的常见需求,同时也是PHP工程师必备的技能之一。掌握了本文介绍的知识,可以轻松地实现文件上传功能。