当学习PHP后,有一个非常重要的应用场景就是上传文件。在PHP中,我们可以通过一些函数达到上传文件的功能。实现PHP上传的关键是两个方面:文件上传的表单 HTML 代码和服务器端上传处理 PHP 代码。下面是PHP上传的完整攻略。
一、上传文件表单 HTML 代码
下面是一个上传单个文件的表单。需要包含 enctype 属性,并将其值设置为 multipart/form-data。
<!-- 上传单个文件表单 -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="submit" value="上传">
</form>
如果我们要上传多个文件,则可以将 input 元素的 name 属性值设置为一个数组。
<!-- 上传多个文件表单 -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file[]"><br>
<input type="file" name="file[]"><br>
<input type="file" name="file[]"><br>
<input type="submit" name="submit" value="上传">
</form>
二、服务器端上传处理 PHP 代码
下面是一个完整的服务器端上传处理 PHP 代码。在该代码中,会检查上传的文件是否符合要求,并保存至服务器端指定的目录中。
// 如果上传文件存在
if(isset($_FILES['file'])) {
// 文件上传目录
$upload_dir = 'uploads/';
// 上传文件信息
$file_name = $_FILES['file']['name'];
$file_tmp_name = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_error = $_FILES['file']['error'];
// 检查上传文件是否符合要求
if($file_error == UPLOAD_ERR_OK) {
// 目标文件路径
$destination = $upload_dir . $file_name;
// 将临时文件移动到目标路径
move_uploaded_file($file_tmp_name, $destination);
echo '文件上传成功:' . $destination;
} else {
echo '文件上传失败';
}
}
三、示例说明
示例一
假设我们要上传一个名为"example.jpg"的文件,在我们的服务器的根目录下有一个名为"uploads"的文件夹,用于存储上传的文件。下面是上传文件的表单代码。
<!-- 上传单个文件表单 -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="submit" value="上传">
</form>
下面是服务器端上传处理 PHP 代码。
// 如果上传文件存在
if(isset($_FILES['file'])) {
// 文件上传目录
$upload_dir = 'uploads/';
// 上传文件信息
$file_name = $_FILES['file']['name'];
$file_tmp_name = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_error = $_FILES['file']['error'];
// 检查上传文件是否符合要求
if($file_error == UPLOAD_ERR_OK) {
// 目标文件路径
$destination = $upload_dir . $file_name;
// 将临时文件移动到目标路径
move_uploaded_file($file_tmp_name, $destination);
echo '文件上传成功:' . $destination;
} else {
echo '文件上传失败';
}
}
示例二
假设我们要上传三个名字分别为"example1.jpg"、"example2.jpg"和"example3.jpg"的文件,在我们的服务器的根目录下有一个名为"uploads"的文件夹,用于存储上传的文件。下面是上传文件的表单代码。
<!-- 上传多个文件表单 -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file[]"><br>
<input type="file" name="file[]"><br>
<input type="file" name="file[]"><br>
<input type="submit" name="submit" value="上传">
</form>
下面是服务器端上传处理 PHP 代码。
// 如果上传文件存在
if(isset($_FILES['file'])) {
// 文件上传目录
$upload_dir = 'uploads/';
// 循环处理上传文件
foreach($_FILES['file']['tmp_name'] as $key => $file_tmp_name) {
// 上传文件信息
$file_name = $_FILES['file']['name'][$key];
$file_size = $_FILES['file']['size'][$key];
$file_error = $_FILES['file']['error'][$key];
// 检查上传文件是否符合要求
if($file_error == UPLOAD_ERR_OK) {
// 目标文件路径
$destination = $upload_dir . $file_name;
// 将临时文件移动到目标路径
move_uploaded_file($file_tmp_name, $destination);
echo '文件上传成功:' . $destination . '<br>';
} else {
echo '文件上传失败<br>';
}
}
}
以上就是PHP上传的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php入门学习知识点三 PHP上传 - Python技术站