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

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

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

luoyeyuzhou
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 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年前 评论

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