Laravel 图片上传过程中,怎样顺便修改掉图片尺寸呢

laravel 图片上传过程中,怎样顺便修改掉图片尺寸呢
上传图片,上传到阿里云OSS里。

我的问题是,在上传到阿里云OSS里之前,怎样修改图片的大小呢?
$real_path 应该都是临时文件。
比如,我的图片是12001200像素的,再上传到阿里云OSS之前,就被修改成800800像素的。
我查了很久实在不知道该怎么处理。

luoyeyuzhou
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 5

imagecreatefromjpeg读取临时文件。

调整大小用imagecopyresized。

把realpath的文件imagejpeg转到newfile。

然后newfile的文件再上传到oss。

4年前 评论
luoyeyuzhou

能帮忙写一下具体的方法步骤吗? imagecreatefromjpeg imagecopyresized 之前没用过,实在不知道该怎么用

4年前 评论

方便点的话使用intervention/image扩展。 安装:composer require intervention/image, 发布配置:php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent" 例子: 先将文件保存到服务器:$img->move($upload_path, $filename);,然后大概可以这样处理:

 public function reduceSize($file_path, $max_width)
    {
        // 先实例化,传参是文件的磁盘物理路径
        $image = \Image::make($file_path);

        // 进行大小调整的操作
        $image->resize($max_width, null, function ($constraint) {

            // 设定宽度是 $max_width,高度等比例缩放
            $constraint->aspectRatio();

            // 防止裁图时图片尺寸变大
            $constraint->upsize();
        });

        // 对图片修改后进行保存
        $image->save();
    }
4年前 评论
luoyeyuzhou

图片上传->临时图片->修改->保存在本地服务器->之后再上传到阿里云OSS里,对吧

4年前 评论

@luoyeyuzhou 对

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!