1.申请Access Key ID和Access Key Secret,以及创建好你的Bucket

2.通过composer安装oss插件

通过cmd,到项目的目录下,输入下面的指令。

composer require aliyuncs/oss-sdk-php

3.配置好oss信息,在config.php中

'aliyun_oss' => [
'accessKeyId' => '', //您的Access Key ID
'accessKeySecret' => '', //您的Access Key Secret
'endpoint' => '', //阿里云oss 外网地址endpoint
'bucket' => '', //Bucket名称
'url' => '' // 访问的地址
]

4.上传图片,并处理到aliyun中

function aliyun($savePath,$category='',$isunlink=false,$bucket="yunlutong-img"){
$accessKeyId = config('aliyun_oss.accessKeyId');//去阿里云后台获取秘钥
$accessKeySecret = config('aliyun_oss.accessKeySecret');//去阿里云后台获取秘钥
$endpoint = config('aliyun_oss.endpoint');//你的阿里云OSS地址
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
// 判断bucketname是否存在,不存在就去创建
if( !$ossClient->doesBucketExist($bucket)){
$ossClient->createBucket($bucket);
}
$category=empty($category)?$bucket:$category; $savePath = str_replace("\\","/",$savePath); $object = $category.'/'.$savePath;//想要保存文件的名称
$file = './uploads\\'.$savePath;//文件路径,必须是本地的。 try{
$ossClient->uploadFile($bucket,$object,$file);
if ($isunlink==true){
unlink($file);
}
}catch (OssException $e){
$e->getErrorMessage();
}
$oss=config('aliyun_oss.url');
return $oss."/".$object;
}

记得要在类的头部引入,

use \OSS\OssClient;

在图片长传之后,处理到阿里云oss中,并将地址保存到数据库

// 添加
$file = request()->file('img'); // 移动到框架应用根目录/public/uploads/ 目录下
$upload_info = $file->move(config('upload_path'));
if(!$upload_info){
// 上传失败获取错误信息
$this->error($file->getError());
} $oss_img_url = $this->aliyun($upload_info->getSaveName(),'live'); $data['title'] = input('post.title');
$data['info'] = input('post.info');
$data['url'] = input('post.url');
$data['sort'] = input('post.sort');
$data['addtime'] = time();
$data['img'] = $oss_img_url;// '/uploads\\'.$upload_info->getSaveName(); $res = db("live_banner")->insert($data);
if ($res) {
$this->success('操作成功', url('LiveExtra/bannerList'));
} else {
$this->error('操作失败');
}

tp5使用oss存储图片的更多相关文章

  1. 阿里云oss存储图片

    单线程版-上传网络流 import pymysql import oss2 import requests import logging # 添加日志 logging.basicConfig( lev ...

  2. 阿里云CDN+OSS完成图片加速

    我们使用React Native开发APP,在列表中显示图片时,列表框经常出现长时间的空白.经过稍微研究和参考其他人的经验,我们知道React Native的ListView以及后来改进版的FlatL ...

  3. php将图片存储在阿里云oss存储上

    创建两个方法 1.上传方法 use OSS\OssClient; use think\Config; use OSS\Core\OssException; /** * 存储文件 * * @param ...

  4. android 存储图片到data目录和读取data目录下的图片

    , fos); } ); Bitmap.CompressFormat localCompressFormat = Bitmap.CompressFormat.PNG; bitmap.compress( ...

  5. WCF存储图片到指定文件夹下

    string path = System.IO.Directory.GetCurrentDirectory() + @"\POIImages\"; Guid imgid = Gui ...

  6. SQL 2008存储图片和读取图片

    用SQL Server存储文字数据非常easy实现,假设用SQL Server存储图片呢?大家有没有实现思路呢?如今我用一个Demo来为大家提供一种在SQL Server中存储图片的思路. 场景:在s ...

  7. 使用jdbc存储图片和大文本

    package cn.itcast.i_batch; import java.sql.Connection; import java.sql.PreparedStatement; import jav ...

  8. SQL反模式学习笔记12 存储图片或其他多媒体大文件

    目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点:     1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...

  9. .NET 使用 Azure Blob 存储图片或文件

    使用的是VS2017 一.先使用 NuGet 获取这两个包. 执行以下步骤: 在“解决方案资源管理器”中,右键单击你的项目并选择“管理 NuGet 包”. 1.在线搜索“WindowsAzure.St ...

随机推荐

  1. C/C++ 名正则言顺

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50532701 名称所表达的含义极其丰富 ...

  2. 在对Activity基类的封装中,我做了什么

    在开发实践中,不同Activity有很多代码是反复冗余的.因此非常有必要将这部分抽取出来.封装一个继承自Activity的类,命名为BaseActivity. 翻看之前写过的代码,起初,BaseAct ...

  3. WCF 无法激活服务,由于它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 错误信息: 无法激活服务.由于它不支持 ASP.NET 兼容性.已为此应用程序启用了 ASP.NE ...

  4. php给图片加入文字水印

    PHP对图片的操作用到GD库.这里我们介绍怎样给图片加入文字水印. 大致分为四步: 1.打开图片 2.操作图片 3.输出图片 4.销毁图片 以下我们上代码来详细解说每步的实现过程: <? php ...

  5. 基础数位DP小结

    HDU 3555 Bomb dp[i][0] 表示含 i 位数的方案总和. sp[i][0] 表示对于位数为len 的 num 在区间[ 10^(i-1) , num/(10^(len-i)) ] 内 ...

  6. hdu4390-Number Sequence(容斥计算)

    题意:给定b数列.计算有多少种数列 a1,a2,...,an 满足条件 a1*a2*...*an=b1*b2*-*bn (ai>1). 解法:处理出b数列中出现的全部质因子的数量记录在map中, ...

  7. 使用dispatch_once实现单例

    很多人实现单例会这样写: @implementation XXClass + (id)sharedInstance { static XXClass *sharedInstance = nil; @s ...

  8. nyoj--124--中位数(水题)

    中位数 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 一组数据按从小到大的顺序依次排列,处在中间位置的一个数叫做中位数. 比如 1 5 10 11 9  其中位数就是9 ...

  9. [hihocoder #1384] Genius ACM 解题报告(倍增)

    题目链接:http://hihocoder.com/problemset/problem/1384 题目大意: 给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下: 从集合 S 中取出 M ...

  10. [Swift]数组(Array)最强解析

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...