PHP 允许通过 HTML 表单同时上传多个文件。这通常涉及到 HTML 中的 <input type="file" name="files[]" multiple>
元素,以及 PHP 中的 $_FILES['files']
超全局变量。
<input type="file" name="file">
上传单个文件。<input type="file" name="files[]" multiple>
上传多个文件。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多文件上传</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<input type="submit" value="上传文件">
</form>
</body>
</html>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$files = $_FILES['files'];
$uploadPath = 'uploads/';
if (!file_exists($uploadPath)) {
mkdir($uploadPath, 0777, true);
}
foreach ($files['name'] as $key => $value) {
$tmp_name = $files['tmp_name'][$key];
$name = $files['name'][$key];
if (move_uploaded_file($tmp_name, $uploadPath . $name)) {
echo "文件 $name 上传成功<br>";
} else {
echo "文件 $name 上传失败<br>";
}
}
}
?>
原因:
解决方法:
php.ini
中的 upload_max_filesize
和 post_max_size
设置。move_uploaded_file
函数时检查返回值,处理错误。原因:
解决方法:
$newFileName = time() . '_' . $name;
move_uploaded_file($tmp_name, $uploadPath . $newFileName);
领取专属 10元无门槛券
手把手带您无忧上云