引言
图片上传原理
实现步骤
1. 创建HTML表单
首先,我们需要创建一个HTML表单,允许用户选择文件并进行上传。
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" id="image">
<input type="submit" value="上传图片">
</form>
2. PHP后端处理
<?php
if (isset($_FILES['image'])) {
$image = $_FILES['image'];
$target_dir = "uploads/";
$target_file = $target_dir . basename($image['name']);
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// 检查文件类型
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
echo "抱歉,只支持 JPG, JPEG, PNG 和 GIF 文件。";
exit;
}
// 检查文件是否已存在
if (file_exists($target_file)) {
echo "抱歉,文件已存在。";
exit;
}
// 移动文件到指定目录
if (move_uploaded_file($image['tmp_name'], $target_file)) {
echo "文件上传成功!";
} else {
echo "文件上传失败。";
}
}
?>
3. 实现客户端实时预览
为了实现客户端的实时预览,我们需要使用JavaScript和HTML5的FileReader API。
<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>
4. 优化用户体验
为了提高用户体验,我们可以添加一些额外的功能,例如文件大小、显示上传进度等。