一、图片上传
1.1 准备工作
- PHP环境已经安装并配置好。
- 服务器支持文件上传功能。
- 创建一个用于存储上传图片的文件夹,并设置相应的权限。
1.2 HTML表单
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" value="上传" />
</form>
1.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 ($_FILES["image"]["size"] > 500000) {
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($target_file);
} else {
echo "文件上传失败。";
}
}
}
?>
二、图片裁剪
2.1 准备工作
2.2 裁剪函数
function cropImage($source, $destination, $width, $height, $x, $y) {
$img = imagecreatefromjpeg($source);
$cropped = imagecrop($img, ['x' => $x, 'y' => $y, 'width' => $width, 'height' => $height]);
imagejpeg($cropped, $destination);
imagedestroy($img);
imagedestroy($cropped);
}
2.3 使用函数
$source:原始图片路径。$destination:裁剪后图片的保存路径。$width:裁剪区域的宽度。$height:裁剪区域的高度。$x:裁剪区域左上角的X坐标。$y:裁剪区域左上角的Y坐标。
以下是一个使用裁剪函数的示例:
cropImage('uploads/image.jpg', 'uploads/cropped_image.jpg', 100, 100, 50, 50);