thinkphp6+七牛云上传 使用对象存储
一、使用七牛云
- 申请七牛云账户(忽略);
- 开通对象存储功能(空间0/10GB,是免费的);
- 创建 bucket (空间名称);
- 在秘钥管理,创建一个秘钥,获取 AccessKey / SecretKey;
二、集成PHP-SDK
七牛云开发文档:https://developer.qiniu.com/kodo
(一)Composer 安装 SDK(推荐使用)
进入cmd 终端,切换目录到你部署项目的根目录下,执行以下命令即可:composer require qiniu/php-sdk
(二)传统方式安装
进入七牛云,下载官方 PHP-SDK,将下载下来的SDK解压,放入项目第三库文件(vendor 或者 extend)
添加表单
<form action="跳转地址" method="跳转方式" enctype="multipart/form-data">
<div class="form-group" >
<label>请输入标题</label>
<input type="text" class="form-control" name="text">
</div>
<div class="form-group">
<label for="exampleInputPassword1">文件</label>
<input type="file" class="form-control" name="image">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
七牛云上传的处理 PHP后台
public function orderin(Request $request){
// 获取表单上传文件 例如上传了001.jpg
$key=input('post.text');
$image = $request->file('image');
//获取上传后的文件路径
// 图片存储在本地的临时路经
$filePath = $image->getRealPath();
// 获取图片后缀
$ext = $image->getOriginalExtension();
// 上传到七牛后保存的新图片名
$newImageName = substr(md5($image->getOriginalName()),0,6)
. rand(00000,99999) . '.'.$ext;
$auth = new Auth('七牛云AK','七牛云SK');
// 要上传的空间位置
$token = $auth->uploadToken('空间名称');
// 初始化 UploadManager 对象并进行文件的上传。
$uploadMgr = new UploadManager();
list($ret , $err) = $uploadMgr->putFile($token , $newImageName , $filePath);
if($err !== null){
return null;
}else{
// 图片上传成功
$da['image']=$newImageName;
$da['text']=$key;
$da['date']=date("Y/m/d");
$n=控制器名称::create($da);
if ($n){
return '添加成功';
}
}
}
七牛云图片的展示
public function ordershow(){
//做了一个分页
$data=Order::paginate(1);
foreach ($data as $item=>$value){
$date[$item]['image']='七牛云图片路径'.$value['image'];
}
return View::fetch('order/ordershow',compact('data'));
}
删除七牛云接口
public function deleteBanner()
{
//接收参数
$params = input();
//删除逻辑,删除七牛云,删除数据库数据
$banner = BannerModel::get($params['id']);
//删除七牛云
$accessKey = '';//去控制台的秘钥管理拿AK
$secretKey = '';//去控制台的秘钥管理拿SK
//七牛云桶名,根据自己实际进行填写
$bucket = '';
//域名长度
$len = strlen('http://qtpud69oi.hn-bkt.clouddn.com/');
//要删除七牛云图片路径
$delImageUrl = substr($banner->image_url,$len);
$auth = new Auth($accessKey, $secretKey);
$config = new \Qiniu\Config();
$bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
$bucketManager->delete($bucket, $delImageUrl);
//删除数据数据
$banner->delete();
return json([
'msg'=>'删除成功',
'code'=>200,
'result'=>''
]);
}
版权声明:本文为lh25946原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。