引言
图片上传原理
1. 文件上传表单
首先,需要一个HTML表单来实现文件上传。以下是一个简单的上传表单示例:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upload" />
<input type="submit" value="上传" />
</form>
2. PHP处理上传
<?php
if (isset($_FILES['upload'])) {
$file = $_FILES['upload'];
$fileType = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
$fileSize = $file['size'];
$allowedTypes = ['jpg', 'jpeg', 'png', 'gif'];
if (in_array($fileType, $allowedTypes) && $fileSize <= 5 * 1024 * 1024) {
$newFileName = uniqid() . '.' . $fileType;
move_uploaded_file($file['tmp_name'], 'uploads/' . $newFileName);
echo "上传成功!";
} else {
echo "上传失败:文件类型或大小不正确。";
}
}
?>
实现实时预览
1. 使用JavaScript
<script>
function previewImage() {
var preview = document.querySelector('#preview');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function () {
preview.src = reader.result;
}
if (file) {
reader.readAsDataURL(file);
} else {
preview.src = "";
}
}
</script>
2. HTML结构
<img id="preview" src="" alt="图片预览" style="max-width: 200px; max-height: 200px;" />
3. 完整示例
将JavaScript代码和HTML结构整合到表单中:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upload" onchange="previewImage()" />
<img id="preview" src="" alt="图片预览" style="max-width: 200px; max-height: 200px;" />
<input type="submit" value="上传" />
</form>