PHP 上传多张图片 前台后台代码
时间: 2024-10-18 19:06:46 浏览: 15
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
在PHP中,上传多张图片通常涉及前端用户选择文件,然后通过AJAX将数据发送到服务器处理。下面是前端HTML表单和后端PHP处理的基本结构:
**前端(HTML + JavaScript):**
```html
<!-- 使用HTML5的multiple属性允许用户一次选择多张图片 -->
<form id="uploadForm" enctype="multipart/form-data">
<input type="file" name="images[]" multiple>
<button type="submit">上传</button>
</form>
<script>
document.getElementById('uploadForm').addEventListener('submit', function(event) {
event.preventDefault(); // 阻止表单默认提交行为
var formData = new FormData(this);
uploadImages(formData); // 调用AJAX上传函数
});
function uploadImages(formData) {
// AJAX请求,这里可以使用fetch、axios等库
fetch('/upload.php', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log('响应:', data))
.catch(error => console.error('错误:', error));
}
</script>
```
**后端(PHP):**假设你有一个名为`upload.php`的文件,它可能会像这样处理:
```php
<?php
// 设置文件路径
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["images"]["name"][$i]);
// 检查目录是否存在并创建如果需要
if (!is_dir($target_dir)) {
mkdir($target_dir, 0777, true);
}
// 图片验证和保存
for ($i = 0; isset($_FILES["images"]["name"][$i]); $i++) {
if ($_FILES["images"]["error"][$i] == UPLOAD_ERR_OK) {
move_uploaded_file($_FILES["images"]["tmp_name"][$i], $target_file);
} else {
echo "Error uploading file";
}
}
// 返回成功信息或者其他操作结果
echo json_encode(['status' => 'success', 'message' => '图片已上传']);
?>
```
阅读全文