您的位置:

PHP工程师必备:使用move_uploaded_file保存上传文件

一、概述

在现代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工程师必备的技能之一。掌握了本文介绍的知识,可以轻松地实现文件上传功能。