tp5框架上传阿里云存储图片、缩略图、水印

tp5框架上传阿里云存储图片、缩略图、水印

大概流程:
首先我们需要在我们的框架中下载阿里云第三方插件,
然后在控制器中引入,
然后进行调用

阿里云找寻代码位置:
首页的文档->对象存储->SDK示例->选择php;
图片防盗链位置:
oss管理控制台->对象存储->存储空间名称(自己所创的空间名称)->权限管理

在这里插入图片描述

下载SDK

composer require aliyuncs/oss-sdk-php

缩略图+水印

 		//接收文件
        $file = request()->file('file');
        //上传
        $info = $file->move(ROOT_PATH . 'public' . DS . 'static' . DS . 'image');
        if($info){
            //获取文件名字
            $path = $info->getSaveName();
            //拼接一下图片绝对路径
            $last_path = ROOT_PATH . 'public' . DS . 'static' . DS . 'image'.DS.$path;
        }else{
            $path = null;
            $last_path = null;
        }

        if($last_path){
            //打开原图
            $image = \think\Image::open($last_path);
            //生成缩略图
            $thumb_path = rand().'.jpg';
            $image->thumb(400, 300)->save(ROOT_PATH . 'public' . DS . 'static' . DS .'image'.DS.$thumb_path);
        }
           if($last_path){
            //打开图片
            $image = \think\Image::open($last_path);
            //生成水印
            $water_path = ROOT_PATH . 'public' . DS . 'static' . DS .'waters'.DS.rand().'.jpg';
            //参数一:水印上的文字名称,参数二:引入框架中的字体绝对路径,参数三:文字大小,参数四:文字颜色
            $image->text('刘桂池',ROOT_PATH . 'public' . DS .'ttf'.DS.'fangzheng.ttf',20,'#00000')->save($water_path);
            }

在我们的控制器中引入:

use OSS\OssClient;
use OSS\Core\OssException;

// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "<yourAccessKeySecret>";
// Endpoint以杭州为例,其它Region请按实际情况填写。
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 设置存储空间名称。
$bucket= "<yourBucketName>";
// 设置文件名称。
$object = "<yourObjectName>";
// <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
$filePath = "<yourLocalFile>";

try{
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);

    $ossClient->uploadFile($bucket, $object, $filePath);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值