一、使用七牛云
申请七牛云账户;
开通对象存储功能(空间0/10GB,免费的);
创建 changj (空间名称);
在秘钥管理,创建一个秘钥,获取 AccessKey / SecretKey;
二、集成PHP-SDK
七牛云开发文档:对象存储 - 七牛开发者中心
Composer 安装 SDK
进入cmd 终端,切换目录到你部署项目的根目录下,执行以下命令即可:
composer require qiniu/php-sdk
添加表单页面:
<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>
控制器方法页面:
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'=>''
]);
}