图片上传
1. 准备工作
2. HTML表单
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" value="上传" />
</form>
3. PHP上传处理
<?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 ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
echo "不支持的文件类型。";
$uploadOk = 0;
}
// 检查是否上传成功
if ($uploadOk == 1) {
if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
echo "文件 " . htmlspecialchars(basename($_FILES["image"]["name"])) . " 已成功上传。";
} else {
echo "上传文件时发生错误。";
}
}
}
?>
4. 图片上传示例
<!DOCTYPE html>
<html>
<head>
<title>图片上传示例</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" value="上传" />
</form>
</body>
</html>
图片清除
1. 删除文件
在PHP中,可以使用unlink()函数删除文件。
unlink("uploads/example.jpg");
2. 删除目录
对于包含多个文件的目录,可以使用rmdir()和scandir()函数递归删除目录中的所有文件和子目录。
function deleteDirectory($dir) {
if (!file_exists($dir)) {
return true;
}
if (!is_dir($dir)) {
return unlink($dir);
}
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') {
continue;
}
if (!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
return false;
}
}
return rmdir($dir);
}
deleteDirectory("uploads");
3. 清除示例
<?php
deleteDirectory("uploads/example.jpg");
?>