php简单写一个上传文件程序,要求同时上传文件数量可以人为控制
封面图
•
2025-09-20
•
PHP
156
0
0
0
下面是一个简单的 PHP 文件上传程序,允许用户上传多个文件,并且可以人为控制上传的文件数量。这个示例使用了 HTML 表单和 PHP 脚本来实现。 --- ### ✅ 功能说明: - 用户可以选择多个文件。 - 可以通过表单参数 `max_files` 控制最多上传的文件数量。 - 上传到服务器的指定目录(例如:`uploads/`)。 - 简单的错误处理(如文件类型、大小等)。 --- ### 📁 目录结构建议: ``` your-project/ │ ├── upload.php └── uploads/ # 上传文件存储目录 ``` --- ### 🔧 `upload.php` 示例代码: ```php <?php // 设置上传目录 $uploadDir = 'uploads/'; $maxFiles = 5; // 默认最大上传文件数 // 检查上传目录是否存在,否则创建 if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777, true); } // 处理上传请求 if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 获取用户设置的最大文件数(可选) $userMaxFiles = isset($_POST['max_files']) ? (int)$_POST['max_files'] : $maxFiles; // 验证最大文件数是否合法 if ($userMaxFiles < 1 || $userMaxFiles > 10) { die("最大上传文件数应在 1 到 10 之间!"); } $uploadedCount = 0; $allowedTypes = ['image/jpeg', 'image/png', 'application/pdf']; // 允许的文件类型 $maxFileSize = 2 * 1024 * 1024; // 2MB if (isset($_FILES['files'])) { $files = $_FILES['files']; foreach ($files['name'] as $index => $name) { $tmpName = $files['tmp_name'][$index]; $type = $files['type'][$index]; $size = $files['size'][$index]; $error = $files['error'][$index]; // 检查是否有错误 if ($error !== UPLOAD_ERR_OK) { echo "文件 " . htmlspecialchars($name) . " 上传失败。\n"; continue; } // 检查文件类型 if (!in_array($type, $allowedTypes)) { echo "文件 " . htmlspecialchars($name) . " 类型不允许。\n"; continue; } // 检查文件大小 if ($size > $maxFileSize) { echo "文件 " . htmlspecialchars($name) . " 太大(超过 2MB)。\n"; continue; } // 生成唯一文件名防止覆盖 $fileName = uniqid() . '_' . basename($name); $filePath = $uploadDir . $fileName; // 移动上传的文件 if (move_uploaded_file($tmpName, $filePath)) { echo "文件 " . htmlspecialchars($name) . " 上传成功。\n"; $uploadedCount++; } else { echo "文件 " . htmlspecialchars($name) . " 上传失败。\n"; } // 如果已达到最大上传数量,停止处理 if ($uploadedCount >= $userMaxFiles) { break; } } } else { echo "没有选择文件。"; } } ?> <!DOCTYPE html> <html> <head> <title>文件上传</title> </head> <body> <h2>上传文件</h2> <form action="upload.php" method="post" enctype="multipart/form-data"> <label>选择文件(最多 <?php echo $maxFiles; ?> 个):</label><br> <input type="file" name="files[]" multiple><br><br> <label>设置最大上传数量:</label> <input type="number" name="max_files" min="1" max="10" value="<?php echo $maxFiles; ?>"><br><br> <input type="submit" value="上传"> </form> </body> </html> ``` --- ### 📝 注意事项: - 确保 `uploads/` 目录有写入权限(通常为 `chmod 777 uploads/`)。 - 你可以根据需要修改 `allowedTypes` 和 `maxFileSize`。 - 这个例子中,用户可以通过输入框手动设置最大上传数量(1~10)。 --- 如果你有更复杂的需求(比如限制文件类型、分片上传、进度条等),也可以继续扩展这个程序。需要的话我可以帮你进一步优化。
上一篇:
论坛中php无限分类的实现原理
下一篇:
比较基础的php面试题及答案 编程题部分
简单写一个上传文件程序,要求同时上传文件数量可以人为控制
标题录入,一次不能超过6条
返回顶部
留言
留言
评论