0
点赞
收藏
分享

微信扫一扫

利用chatGPT用ThinkPHP6的topthink/think-filesystem与topthink/think-image生成上传图片,生成缩略图,加水印功能


未经实测,可以参考:

1.安装两个插件

2. 修改config\filesystem.php文件

// 配置文件上传
'filesystem' => [
    'default' => 'local',
    'disks' => [
        'local' => [
            'type' => 'local',
            'root' => app()->getRootPath() . 'public/uploads',
            'url' => '/uploads/',
            'visibility' => 'public',
        ],
    ],
],

// 配置图片处理
'image' => [
    'driver' => 'imagick', // 或者gd
    'watermark' => 'watermark.png', // 水印图片路径
],

3.使用这两个插件来实现上传图片、生成缩略图、加水印等功能

use think\Image;
use think\facade\Filesystem;

// 上传文件
$path = Filesystem::disk('local')->putFile('images', $file);

// 生成缩略图
$thumbnailPath = 'images/thumbnail.jpg';
Image::open($file->getRealPath())->thumb(100, 100)->save($thumbnailPath);

// 加水印
$watermarkPath = 'images/watermark.jpg';
Image::open($file->getRealPath())->water($watermarkPath, Image::WATER_SOUTHEAST)->save($watermarkPath);

需要注意的是,生成缩略图和加水印的操作都是在本地进行的,如果需要在分布式环境下使用,可以使用其他的存储驱动,例如阿里云OSS、七牛云等,详细使用方法可以参考topthink/think-filesystem的文档。

举报

相关推荐

0 条评论