当前位置:首页 > 脚本编程 > 正文内容

ThinkPHP框架下使用七牛云上传图片(文件)与删除

atao8个月前 (04-13)脚本编程642

七牛云好处:云存储,云加速,CDN镜像存储等等,自直观的说,就是把一些静态文件如:css、js、图片等存储到七牛云,然后通过一个分配的或者自己绑定的域名开启CDN加速去访问,这样既减少了自己的服务器压力,又也减少了宽带,非常适合个人,或者一些中小型企业网站使用。

  1. 注册七牛云账号

  2. 对象存储新建一个存储空间,并记下名称

  3. 到个人中心 -> 密钥管理获取密钥:AK和SK

  4. 下载七牛云的SDK推荐使用Composer下载

php composer.phar require qiniu/php-sdk

代码实例

// 引入类文件
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
/**
 * 共用部分
 */
protected $token;
const BUCKET = '空间名字'; //七牛云空间名
const DOMAIN = 'http://'.'你的域名'.'/'; //CDN加速域名
const ACCESS_KEY = '你的AK密钥'; //七牛云密钥AK
const SECRET_KEY = '你的SK密钥'; //七牛云密钥SK
// 初始化自动加载方法
public function initialize(){
    $auth = new Auth(self::ACCESS_KEY, self::SECRET_KEY);
    // 生成上传Token
    $this->token = $auth->uploadToken(self::BUCKET);
}
/**
 * 上传部分
 * @param array $file 图片参数
 * @return array
 */
public function uploadOne() {
    $data = $this->request->file("img"); //获取到图片的信息
    $info = $data->getInfo(); //把图片信息转为数组
    $info['name'] = md5(time().mt_rand(10000000,99999999).$_SERVER['REMOTE_ADDR']).substr($info['name'],strrpos($info['name'],".")); //生成永远不重复的图片名
    // 构建UploadManager对象
    $uploadMgr = new UploadManager();
    list($ret, $err) = $uploadMgr->putFile($this->token, $info['name'], $info['tmp_name']);
    // 判断是否上传成功
    if ($err !== null) {
        return ['err' => 0,  'data' => '上传失败'];
    } else {
        //返回图片的完整URL
        return ['code' => 1, 'msg' => '上传完成', 'data' => (self::DOMAIN . $ret['key'])];
    }
}
/**
 * 删除图片
 * @return bool
 */
public static function delimage()
{
    $delFileName = "778bf3208bf2b62d288b5572074d6512.png"; //要删除的图片文件,与七牛云空间存在的文件名称相同
    // 判断是否是图片  目前测试,简单判断
    $isImage = preg_match('/.*(\.png|\.jpg|\.jpeg|\.gif)$/',$delFileName);
    if(!$isImage){
        return false;
    }
    // 构建鉴权对象
    $auth = new Auth(self::ACCESS_KEY, self::SECRET_KEY);
    // 配置
    $config = new \Qiniu\Config();
    // 管理资源
    $bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
    // 删除文件操作
    $res = $bucketManager->delete(self::BUCKET, $delFileName);
    if (is_null($res['1'])) {
        return true; //删除成功了
    }
    return false; //删除失败了
}














扫描二维码推送至手机访问。

版权声明:本文由武景涛的博客发布,如需转载请注明出处。

本文链接:http://www.yizhanhongtu.cn/post/65.html

分享给朋友:
返回列表

上一篇:php基于QRcode类生成二维码,类文件下载

没有最新的文章了...

相关文章

PHP原生对接QQ互联/实现QQ登录,SDK2.1版本/超级详细!

PHP原生对接QQ互联/实现QQ登录,SDK2.1版本/超级详细!

在目前在大部分网站中都会接入QQ登录或者微信登录,目前QQ互联的接入门槛是比较低的,官方的前提是必须备案网站!!如果网站没有备案请某宝自行搜索一下其他方法。用QQ登录接口,首先要到QQ互联完善开发者认...

组织结构图OrgChart.js的简单使用,实现树状图结构

组织结构图OrgChart.js的简单使用,实现树状图结构

OrgChart.js是什么?基于ES6的组织结构图插件。特征支持本地数据和远程数据(JSON)。基于CSS3过渡的平滑扩展/折叠效果。将图表对齐为4个方向。允许用户通过拖放节点更改组织结构。允许用户...

php微信支付类下载,包含统一下单、回调、退款方法。

php微信支付类下载,包含统一下单、回调、退款方法。

微信支付全流程类文件,包含:统一下单接口、回调验证、微信退款、xml转换、签名生成和CURL等方法,自用类文件非常全,希望大家可以借鉴。另外注意1、下载后的类文件在一个pay的文件夹。2、类文件会带有...

php导出excel中数字会自动转换为科学计数法解决办法

php导出excel中数字会自动转换为科学计数法解决办法

原因:凡数字超过11位数,Excel 表格就会用科学记数法显示。如果要输入超过11位的数,得把单元格设为文本形式或在输入数字前先输入一个英文单引号(')或者加入制表符。数据导出不转换科学计数法...

PhpSpreadsheet的下载介绍和简单使用(导出文件和上传excel数据到数据库)

PhpSpreadsheet的下载介绍和简单使用(导出文件和上传excel数据到数据库)

由于PHPExcel已经不再维护,PhpSpreadsheet是PHPExcel的下一个版本。PhpSpreadsheet是一个用纯PHP编写的库,并引入了命名空间,PSR规范等。这里简单介绍下Php...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。