下面是一个PHP多文件上传的简单实现示例。请注意,为了保持代码的简洁性,此示例不包括所有可能的安全检查(如文件大小限制、文件类型检查、错误处理等),这些在实际应用中是非常重要的。
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['files'])) {
// 检查是否有文件被上传
if (!empty($_FILES['files']['name'][0])) {
$targetDir = "uploads/"; // 指定上传目录
$uploadOk = 1; // 初始化上传状态为成功
// 遍历所有上传的文件
for ($i = 0; $i < count($_FILES['files']['name']); $i++) {
// 获取临时文件名和目标文件名
$tmpFilePath = $_FILES['files']['tmp_name'][$i];
$targetFilePath = $targetDir . basename($_FILES['files']['name'][$i]);
// 尝试上传文件
if (move_uploaded_file($tmpFilePath, $targetFilePath)) {
echo "文件 " . htmlspecialchars(basename($_FILES["files"]["name"][$i])) . " 已被上传。<br>";
} else {
echo "上传文件 " . htmlspecialchars(basename($_FILES["files"]["name"][$i])) . " 时发生错误。<br>";
$uploadOk = 0; // 如果有文件上传失败,设置上传状态为失败
}
}
if ($uploadOk == 0) {
echo "很遗憾,文件上传过程中有错误发生。";
}
}
}
?>
<!-- HTML 表单用于上传文件 -->
<form action="" method="post" enctype="multipart/form-data">
选择文件上传(可多选):
<input type="file" name="files[]" multiple>
<input type="submit" value="上传文件" name="submit">
</form>
在这个示例中,我们创建了一个HTML表单,允许用户选择多个文件上传。表单的`enctype`属性被设置为`multipart/form-data`,这对于文件上传是必需的。PHP脚本首先检查请求方法是否为POST且`$_FILES['files']`数组是否已设置,然后遍历所有上传的文件,并使用`move_uploaded_file()`函数将文件从临时目录移动到指定的目标目录。如果文件上传成功,脚本将输出一条成功消息;如果发生错误,则输出一条错误消息。
请确保您的PHP环境已配置好适当的上传目录,并且该目录对PHP脚本是可写的。同时,出于安全考虑,您应该添加适当的文件类型检查和大小限制。