一、准备工作
二、创建图片上传表单
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">选择图片:</label>
<input type="file" name="file" id="file" required>
<input type="submit" value="上传">
</form>
在这个表单中,我们使用enctype="multipart/form-data"属性来指定表单数据类型为文件上传,name="file"属性用于标识上传的文件。
三、编写PHP上传代码
<?php
// 检查是否有文件被上传
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['file'])) {
// 获取上传的文件信息
$file_name = $_FILES['file']['name'];
$file_tmp = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_error = $_FILES['file']['error'];
$file_type = $_FILES['file']['type'];
// 设置允许的文件类型
$allowed_types = array('image/jpeg', 'image/png', 'image/gif');
$file_ext = strtolower(end(explode('.', $file_name)));
// 检查文件类型是否允许
if (in_array($file_type, $allowed_types)) {
// 检查是否有错误发生
if ($file_error === 0) {
// 生成唯一的文件名
$new_file_name = uniqid('', true) . '.' . $file_ext;
// 移动上传的文件到指定目录
$move = move_uploaded_file($file_tmp, 'uploads/' . $new_file_name);
// 检查文件是否成功上传
if ($move) {
echo "文件上传成功!";
} else {
echo "文件上传失败!";
}
} else {
echo "错误:文件上传有误。";
}
} else {
echo "错误:文件类型不正确。";
}
}
?>
在这个示例中,我们首先检查是否有文件被上传,然后获取上传的文件信息。接着,我们设置允许的文件类型,并检查上传的文件类型是否允许。如果文件类型允许,我们检查是否有错误发生。如果没有错误,我们生成唯一的文件名,并将文件移动到指定目录。
四、图片替换功能
<!DOCTYPE html>
<html>
<head>
<title>图片替换</title>
</head>
<body>
<h1>图片替换</h1>
<form action="replace.php" method="post" enctype="multipart/form-data">
<label for="file">选择图片:</label>
<input type="file" name="file" id="file" required>
<input type="submit" value="替换">
</form>
</body>
</html>
<?php
// 检查是否有文件被上传
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['file'])) {
// 获取上传的文件信息
$file_name = $_FILES['file']['name'];
$file_tmp = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_error = $_FILES['file']['error'];
$file_type = $_FILES['file']['type'];
// 设置允许的文件类型
$allowed_types = array('image/jpeg', 'image/png', 'image/gif');
$file_ext = strtolower(end(explode('.', $file_name)));
// 检查文件类型是否允许
if (in_array($file_type, $allowed_types)) {
// 检查是否有错误发生
if ($file_error === 0) {
// 生成唯一的文件名
$new_file_name = uniqid('', true) . '.' . $file_ext;
// 移动上传的文件到指定目录
$move = move_uploaded_file($file_tmp, 'uploads/' . $new_file_name);
// 检查文件是否成功上传
if ($move) {
// 删除原图片
unlink('uploads/old_image.jpg');
// 重命名新图片
rename('uploads/' . $new_file_name, 'uploads/old_image.jpg');
echo "图片替换成功!";
} else {
echo "图片替换失败!";
}
} else {
echo "错误:文件上传有误。";
}
} else {
echo "错误:文件类型不正确。";
}
}
?>