ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

TP5.0实现七牛云图片上传接口

2021-09-12 13:02:04  阅读:196  来源: 互联网

标签:TP5.0 七牛云 name UploadManager fileName file 上传


1.先创建好七牛云账号和存储空间

  1. 申请七牛云账号;
  2. 创建七牛云存储空间;
  3. 在账号的秘钥管理里面创建秘钥 获取AccessKey / SecretKey;

2.集成PHP-SDK

七牛云开发文档:https://developer.qiniu.com/kodo

(一)Composer 安装 SDK(推荐使用)
进入cmd 终端,切换目录到你部署项目的根目录下,执行以下命令即可:composer require qiniu/php-sdk

(二)传统方式安装
进入七牛云,下载官方 PHP-SDK,将下载下来的SDK解压,放入项目第三库文件(vendor 或者 extend)

3.实战开发

 在之前要引入七牛云

use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
     //接收文件上传的值
        $file = $_FILES;
        //本地的文件路径
        $localFilePath = $file['file']['tmp_name'];
        //截取文件后缀名
        //$suffix = '.jpg';
        $suffix = strtolower(substr($file['file']['name'],strpos($file['file']['name'],'.')));

        //生成一个唯一的文件名称,重命名 (md5加密原文件名+秒+随机数)
        $fileName = md5($file['file']['name']) . date('s',time()) . rand(1,9999999);
        $fileName .= $suffix;

        //上传七牛云业务逻辑
        $accessKey = 'zIrswk8VTUu0JL7hBAPinVgNlh5TY1bsGjwAXaAG'; //去控制台的秘钥管理拿AK
        $secretKey = 'HwLmcQd8p1DFe45uz3z_XCkKMG9c2asR1MCale0E';//去控制台的秘钥管理拿SK
        $auth = new Auth($accessKey, $secretKey);
        //七牛云桶名,根据自己实际进行填写
        $bucket = 'gj2609785719';
        // 生成上传Token
        $token = $auth->uploadToken($bucket);
        // 构建 UploadManager 对象
        $uploadMgr = new UploadManager();

        // 调用 UploadManager 的 putFile 方法进行文件的上传。
        list($ret, $err) = $uploadMgr->putFile($token, $fileName, $localFilePath);

        //错误信息提示
        if ($err != null) {
            //可调整为错误页面
            return json([
                'msg'=>'上传失败',
                'code'=>201,
                'result'=>''
            ]);
        }

        //把七牛云图片路径存储到我们自己的数据库  七牛云图片路径
        $imageUrl = 'http://qz9mta2zn.hn-bkt.clouddn.com/' . $fileName;
        return getJsonOk(200,'上传成功',$imageUrl);

 

标签:TP5.0,七牛云,name,UploadManager,fileName,file,上传
来源: https://www.cnblogs.com/gj210623/p/15257826.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有