使用PHP的$_FILES全局数组和move_uploaded_file()函数,可以实现多张图片的上传。
PHP实现多图片上传
单元1:准备工作

创建一个HTML表单,包含一个文件输入框和一个提交按钮。
在PHP文件中,设置一个接收上传文件的目录。
单元2:HTML表单代码
<form action="upload.php" method="post" enctype="multipart/formdata">
选择图片:<input type="file" name="images[]" multiple>
<input type="submit" value="上传">
</form>
单元3:PHP代码 upload.php
1、检查是否有文件上传,如果没有则返回错误信息。
2、遍历上传的文件数组,并逐个处理每个文件。
3、获取文件名和文件类型。

4、检查文件类型是否合法(例如只允许jpg、png等格式)。
5、检查文件大小是否超过限制(例如不超过1MB)。
6、为每个文件生成一个新的文件名,确保不会重复。
7、将文件移动到指定的目录中。
8、输出成功上传的文件信息或错误信息。
单元4:PHP代码示例 upload.php
<?php
if ($_FILES["images"]["error"] > 0) {
echo "Error: " . $_FILES["images"]["error"];
} else {
$allowed = array("jpg", "jpeg", "png"); // 允许的文件类型
$maxSize = 1024 * 1024; // 最大文件大小(1MB)
foreach ($_FILES["images"]["tmp_name"] as $key => $tmp_name) {
$fileName = $_FILES["images"]["name"][$key];
$fileType = pathinfo($fileName, PATHINFO_EXTENSION); // 获取文件类型
$fileSize = $_FILES["images"]["size"][$key]; // 获取文件大小
// 检查文件类型和大小是否合法
if (in_array($fileType, $allowed) && $fileSize <= $maxSize) {
// 生成新的文件名,确保不会重复
$newFileName = uniqid() . "." . $fileType;
// 移动文件到指定目录
move_uploaded_file($tmp_name, "uploads/" . $newFileName);
echo "Uploaded file: " . $newFileName . "<br>";
} else {
echo "Invalid file: " . $fileName . "<br>";
}
}
}
?>
问题与解答:

Q1: 如果我想限制用户只能上传特定类型的图片,比如只允许上传jpg和png格式的图片,该如何修改代码?
A1: 在PHP代码中的$allowed数组中添加允许的文件类型即可,$allowed = array("jpg", "jpeg", "png");,这样只有这些类型的图片才会被接受,如果需要添加其他类型,只需将其添加到数组中即可。
Q2: 如果我想限制用户上传的图片大小不超过1MB,该如何修改代码?
A2: 在PHP代码中的$maxSize变量中设置允许的最大文件大小即可,$maxSize = 1024 * 1024;,这样只有小于等于1MB的图片才会被接受,如果需要设置其他大小的上限,只需将该值更改为所需的字节数即可。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/1986.html