tp5使用oss存储图片
存储 图片 TP5 oss 使用
2023-09-27 14:24:30 时间
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('操作失败');
}
相关文章
- ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪
- 将数据存储在博文中的图片中
- Helm 部署 Prometheus 集群以 Influxdb 1.8.0 作为远程持久存储【1】
- EVA 4400存储硬盘故障导致数据丢失怎么恢复?
- Xamarin Essentials教程安全存储SecureStorage
- 《JavaScript启示录》——1.13 如何存储或复制复杂值
- 《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.11 磁盘原生命令排序(disk native command queuing)
- Swift Core Data 图片存储与读取Demo
- Swift Core Data 图片存储与读取Demo
- 应用新局面 企业存储迎来超大容量SSD时代
- 在Python中图片存储和访问的三种方式详解
- 图片提取利器,从PDF中快速提取图片并存储到本地
- 06-数据存储、安全认证与控制台
- SwiftUI 数据持久化之 数据coredata与文件存储的区别和优势
- 二、查询语句存储
- Github又悄悄升级了,这次的变化是大文件的存储方式
- mysql存储过程,获取指定数据库的某个表的字段信息
- Unity 阿里云 之 OSS对象存储功能的接入之图片处理
- (4.26)sql server存储过程优化
- Memcache存储大数据的问题(大于1m)