前端准备
<form action="upload.php" method="post" enctype="multipart/form-data">
选择图片:<input type="file" name="image" />
<input type="submit" value="上传图片" />
</form>
后端处理
1. 图片上传
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["image"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// 检查文件是否已存在
if (file_exists($target_file)) {
echo "抱歉,文件已存在。";
$uploadOk = 0;
}
// 检查文件大小
if ($_FILES["image"]["size"] > 500000) {
echo "抱歉,文件太大。";
$uploadOk = 0;
}
// 允许特定格式的图片
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "抱歉,只允许上传 JPG, JPEG, PNG & GIF 文件。";
$uploadOk = 0;
}
// 检查是否没有错误,并且 $uploadOk 设置为 0
if ($uploadOk == 0) {
echo "抱歉,您的文件未能上传。";
} else {
// 如果一切顺利,尝试上传文件
if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
echo "文件已成功上传: " . basename( $_FILES["image"]["name"]). "";
} else {
echo "抱歉,文件上传时出错。";
}
}
}
?>
在这个示例中,我们首先检查请求的方法是否为POST,然后设置目标目录和文件名。我们检查文件是否已存在、文件大小以及文件类型。如果一切检查都通过,我们尝试将文件从临时文件夹移动到目标目录。
2. 图片替换
<?php
// 删除旧图片
unlink("uploads/old_image.jpg");
// 上传新图片(参考上面的上传代码)
?>