在PHP中,可以使用$_FILES
超全局变量来处理文件上传。以下是一个示例代码,演示如何上传图片并生成缩略图。
<?php
// 限制上传文件大小为2MB
$maxFileSize = 2 * 1024 * 1024;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 检查是否有文件上传错误
if ($_FILES["image"]["error"] > 0) {
echo "上传错误: " . $_FILES["image"]["error"];
} else {
// 检查文件大小
if ($_FILES["image"]["size"] > $maxFileSize) {
echo "文件大小超过限制";
} else {
// 检查文件类型
$allowedTypes = array("image/jpeg", "image/png");
if (!in_array($_FILES["image"]["type"], $allowedTypes)) {
echo "只允许上传JPEG和PNG图片";
} else {
// 保存上传文件
$uploadDir = "uploads/";
$filename = $_FILES["image"]["name"];
$thumbnailFilename = "thumbnail_" . $filename;
move_uploaded_file($_FILES["image"]["tmp_name"], $uploadDir . $filename);
// 生成缩略图
$thumbnailWidth = 200;
$thumbnailHeight = 200;
$imageInfo = getimagesize($uploadDir . $filename);
$originalWidth = $imageInfo[0];
$originalHeight = $imageInfo[1];
$thumbnail = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);
$original = imagecreatefromjpeg($uploadDir . $filename);
imagecopyresampled($thumbnail, $original, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $originalWidth, $originalHeight);
imagejpeg($thumbnail, $uploadDir . $thumbnailFilename);
echo "上传成功";
}
}
}
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="上传">
</form>
</body>
</html>
在上述代码中,$maxFileSize
变量定义了文件上传的大小限制,这里设置为2MB。如果上传的文件大小超过该限制,将会显示错误消息。
$allowedTypes
数组定义了允许上传的文件类型,这里只允许上传JPEG和PNG图片。如果上传的文件类型不在允许的列表中,将会显示错误消息。
$thumbnailWidth
和$thumbnailHeight
变量定义了缩略图的尺寸,这里设置为200x200像素。
getimagesize
函数用于获取原始图片的宽度和高度。
imagecreatetruecolor
函数创建一个指定尺寸的空白缩略图。
imagecopyresampled
函数将原始图片复制到缩略图中,并按照指定的尺寸进行缩放。
imagejpeg
函数将缩略图保存到指定的目录中。
最后,通过HTML表单提交文件,并在PHP代码中进行处理。上传成功后,将会显示"上传成功"消息。
上一篇:php 读取txt的文件
下一篇:php接收照片(php调用图片)
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站