关键词搜索

源码搜索 ×
×

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

发布2023-04-27浏览748次

详情内容

未经实测,可以参考:

1.安装两个插件

2. 修改config\filesystem.php文件

  1. // 配置文件上传
  2. 'filesystem' => [
  3. 'default' => 'local',
  4. 'disks' => [
  5. 'local' => [
  6. 'type' => 'local',
  7. 'root' => app()->getRootPath() . 'public/uploads',
  8. 'url' => '/uploads/',
  9. 'visibility' => 'public',
  10. ],
  11. ],
  12. ],
  13. // 配置图片处理
  14. 'image' => [
  15. 'driver' => 'imagick', // 或者gd
  16. 'watermark' => 'watermark.png', // 水印图片路径
  17. ],

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

  1. use think\Image;
  2. use think\facade\Filesystem;
  3. // 上传文件
  4. $path = Filesystem::disk('local')->putFile('images', $file);
  5. // 生成缩略图
  6. $thumbnailPath = 'images/thumbnail.jpg';
  7. Image::open($file->getRealPath())->thumb(100, 100)->save($thumbnailPath);
  8. // 加水印
  9. $watermarkPath = 'images/watermark.jpg';
  10. Image::open($file->getRealPath())->water($watermarkPath, Image::WATER_SOUTHEAST)->save($watermarkPath);

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

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载