安装
七牛云开发文档:developer.qiniu.com/kodo 对象存储可以简单理解为用来存储图片、音频、视频等非结构化数据的数据池。相对于主机服务器,具有读写速度快,利于分享的特点。
(一)Composer 安装 SDK(推荐使用)
进入cmd 终端,切换目录到你部署项目的根目录下,执行以下命令即可:composer require qiniu/php-sdk
(二)传统方式安装
进入七牛云,下载官方 PHP-SDK,将下载下来的SDK解压,放入项目第三库文件(vendor 或者 extend)
添加处理
引入
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
public function insert(){
$data=input('post.');
$file = $_FILES;
//本地的文件路径
$localFilePath = $file['file']['tmp_name'];
// print_r($localFilePath);die();
//截取文件后缀名
//$suffix = '.jpg';
$suffix = strtolower(substr($file['file']['name'],strpos($file['file'['name'],'.')));
//生成一个唯一的文件名称,重命名 (md5加密原文件名+秒+随机数)
$fileName = md5($file['file']['name']) . date('s',time()) . rand(1,9999999);
$fileName .= $suffix;
//上传七牛云业务逻辑
$accessKey = ''; //去控制台的秘钥管理拿AK
$secretKey = '';//去控制台的秘钥管理拿SK
$auth = new Auth($accessKey, $secretKey);
//七牛云桶名,根据自己实际进行填写
$bucket = '';
// 生成上传Token
$token = $auth->uploadToken($bucket);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传。
list($ret, $err) = $uploadMgr->putFile($token, $fileName, $localFilePath);
//错误信息提示
if ($err != null) {
//可调整为错误页面
return json([
'msg'=>'上传失败',
'code'=>201,
'result'=>''
]);
}
//把七牛云图片路径存储到我们自己的数据库 七牛云图片路径
$data['thumbnail_pic_s'] = 'http://qttirgeqg.hn-bkt.clouddn.com/' . $fileName;
//入库业务逻辑 create save 只有这两个模型方法才能自动写入时间戳
$result =News::create($data);
return json([
'msg'=>'上传成功',
'code'=>200,
'result'=>$result
]);
}
<a href="javascript:if(confirm('确认删除吗?'))window.location='http://www.month.com/dele?id={$v.id}&status={$v.status}'">删除</a>
封装三要素
function writeJson($result=null,$msg=null,$errorCode=0){
$date=[
'errorCode'=>$errorCode,
'data'=>$result,
'msg'=>$msg
];
return json($date);
}
域名防盗
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !month24.com [NC] #这是可以盗链的域名或IP地址
RewriteRule .*\.(jpg|png|jpgrar|zip)$ https:www.baidu.com [R,NC,L] #如果不符合可以访问图的域名或者ip,则走这一步