PHP 上传多张图片带预览 前台后台代码
时间: 2024-10-18 14:07:02 浏览: 17
PHP发布站带后台前台商业版
在PHP中,处理多张图片上传通常会涉及到前端表单提交、文件处理以及数据库存储。以下是前台和后台的基本步骤:
**前台代码 (HTML + JavaScript)**:
```html
<!-- HTML Form -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="images[]" multiple>
<input type="submit" value="上传">
</form>
<script>
// 检查浏览器兼容性和文件大小限制等
function validateFiles() {
// ... (添加验证逻辑)
}
</script>
```
**JavaScript** 部分可以用于事件监听,比如文件选择改变时进行验证。
**后台代码 (PHP - upload.php)**:
```php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$allowedExtensions = ['jpg', 'jpeg', 'png']; // 允许的图片格式
foreach ($_FILES['images']['tmp_name'] as $key => $tmpName) {
$extension = pathinfo($_FILES['images']['name'][$key], PATHINFO_EXTENSION);
if (!in_array($extension, $allowedExtensions)) {
die("只允许上传.jpg, .jpeg 和 .png 格式的图片.");
}
$uploadDir = "uploads/";
$newFileName = uniqid() . '.' . $extension;
move_uploaded_file($tmpName, $uploadDir . $newFileName);
// 存储文件信息到数据库,这里仅做简单示例,实际应用需要连接数据库并插入数据
$imageInfo[] = array(
'filename' => $newFileName,
'user_id' => // 获取当前登录用户ID或其他相关信息
);
}
// 将所有上传成功的图片信息保存到数组或数据库
// ... (将影像信息存入数据库)
echo json_encode(array('status' => 'success', 'message' => '图片上传成功', 'data' => $imageInfo));
} else {
die('Invalid request.');
}
?>
```
这里使用了`move_uploaded_file()`函数来移动文件到服务器指定目录,并使用`json_encode()`返回给前端一个包含状态、消息及上传成功的图片信息的JSON响应。
阅读全文