Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / mysql

php上传缩略图(php上传图片大小限制)

作者:躲藏我的霸气   发布日期:2024-12-08   浏览:642

在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调用图片)

大家都在看

php下订单代码(php订单系统)

php如何写回调函数

微信个人收款 php(微信个人收款码)

linux如何开发php(linux创建p

php数组传变量吗(php数组转换成字符串

php延长生命周期(php变量生命周期)

php 截取 网页内容(php 截断)

php拆分excel表格(php分割数组)

php 发送qq邮件(php收发邮件)

php按键按下事件(php单击按钮的几种实

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站