在PHP中,要实现多文件上传,可以通过以下步骤:
$_FILES
超全局变量来处理上传的文件。这是一个简单的示例:
HTML表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Multiple File Upload</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select files to upload:
<input type="file" name="files[]" multiple>
<input type="submit" value="Upload">
</form>
</body>
</html>
注意<input>
标签的name
属性设置为files[]
,这样可以接收多个文件。multiple
属性允许用户选择多个文件。
PHP处理脚本 (upload.php)
<?php
// 设置上传目录
$target_dir = "uploads/";
// 遍历所有上传的文件
for ($i = 0; $i< count($_FILES['files']['name']); $i++) {
// 获取文件信息
$tmp_name = $_FILES['files']['tmp_name'][$i];
$file_name = $_FILES['files']['name'][$i];
$file_size = $_FILES['files']['size'][$i];
$file_type = $_FILES['files']['type'][$i];
// 检查文件大小和类型(此处仅为示例,可根据需求修改)
if ($file_size > 5000000) {
echo "Sorry, the file is too large.";
continue;
}
if ($file_type != "image/jpeg" && $file_type != "image/png") {
echo "Sorry, only JPG and PNG files are allowed.";
continue;
}
// 设置目标文件名
$target_file = $target_dir . basename($file_name);
// 检查文件是否已存在
if (file_exists($target_file)) {
echo "Sorry, the file already exists.";
continue;
}
// 尝试上传文件
if (move_uploaded_file($tmp_name, $target_file)) {
echo "The file " . $file_name . " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
这个PHP脚本会遍历所有上传的文件,检查文件大小和类型,然后将文件移动到指定的上传目录。你可以根据需要修改这个脚本,例如添加更多的验证或处理其他类型的文件。