php 七牛云存储图片

基础操作

注册七牛云并且(个人或企业认证)

新建存储空间

获取公钥和私钥

PHP 代码

引入cdk

composer require qiniu/php-sdk

php写入

    static private $accessKey = '************************'; //公钥
    static private $secretKey = '************************';//私钥
    static private $bucket  = '*****';//空间名称
    static private $token; //token
    static private $domain = '************************'; //域名


    public function __construct()
    {
        if( !self::$token ){
            $auth = new Auth(self::$accessKey, self::$secretKey);
            // 生成上传Token
            self::$token = $auth->uploadToken(self::$bucket);
        }
        return self::$token;
    }

源文件上传图片到七牛云

    /**
     * Notes:  七牛云上传图片
     * Author: Seven
     * Metthod: getUploadManager
     * Date: 2023/1/6   15:05
     * @param $file
     * @return string[]
     * @throws \Exception
     */
    public function getUploadManager($file){
        $uploadMgr = new UploadManager();
        // 要上传文件的本地路径
        $filePath = $file;
        // 上传到存储后保存的文件名
        $key = date('Ym').'/'.md5(time()).'.'.$file->extension();
        list($ret, $err) = $uploadMgr->putFile(self::$token, $key, $filePath, null, 'application/octet-stream', true, null, 'v1');
        if($err !== null){
            return ['code'=>'-1','msg'=>'上传失败'];
        }
        return ['code'=>'0','data'=>self::$domain.$ret['key']];
    }
结果

base64上传图片到七牛云

/**
 * Notes: 上传base64位图片到七牛云
 * Author: Seven
 * Metthod: getUploadPictureBase64
 * Date: 2023/1/6   15:16
 * @param $base64
 * @return array|false
 */
public function getUploadPictureBase64($base64)
{
    $base64 = trim($base64);
    $base64 = str_replace('data:image/jpeg;base64,','',$base64);
    if($base64)
    {
        //自定义图片名称
        $key = 'picture/'.date('Ym').'/'.md5(time()).'.png';
        $str = base64_encode($key);//需要吧名称改为base64格式,否则无法生效
        //华北空间使用 upload-z1.qiniup.com,
        //华南空间使用 upload-z2.qiniup.com,
        //北美空间使用 upload-na0.qiniup.com。
        $qiniu = self::curl_picture("http://upload-z1.qiniup.com/putb64/-1/key/".$str,$base64,self::$token);
        $qiniuArr = json_decode($qiniu,true);
        if(!isset($qiniuArr['key'])){
            return ['code'=>'-1','msg'=>$qiniuArr['error']];
        }
        return ['code'=>'0','data'=>self::$domain.$qiniuArr['key'],];
    }
    return ['code'=>'-1','msg'=>'base64格式错误'];
}

/**
 * Notes:  七牛上传base64图片
 * Author: Seven
 * Metthod: curl_picture
 * Date: 2023/1/6   16:10
 * @param $remote_server
 * @param $post_string
 * @param $upToken
 * @return bool|string
 */
public function curl_picture($remote_server,$post_string,$upToken)
{
    $headers = array();
    $headers[] = 'Content-Type:application/octet-stream';
    $headers[] = 'Authorization:UpToken '.$upToken;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$remote_server);
    curl_setopt($ch, CURLOPT_HTTPHEADER ,$headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值