kindeditor 加入七牛云上传的实例讲解
发布:smiling 来源: PHP粉丝网 添加日期:2021-08-19 10:22:24 浏览: 评论:0
下面小编就为大家带来一篇kindeditor 加入七牛云上传的实例讲解,小编觉得挺不错的,现在就分享给大家,也给大家做个参考,一起跟随小编过来看看吧。
七牛云上传主要有两种:
服务端上传
前端上传,前端又分两种返回方式:
1).重定向返回,可以解决ajax跨域的问题
2).回调返回,七牛云先向服务端要返回数据,再由七牛云返回前端,解决不支持重定向的请求方式,比如小程序上传
本次使用的是 七牛云 php sdk;
composer require qiniu/php-sdk
在Kindeditor/php 下添加 config.php 主要是配置参数
- <?php
- error_reporting(0);
- defined('ROOT_PATH') || define('ROOT_PATH', dirname(__DIR__).'/');
- defined('QINIU_ACCESS_KEY') || define('QINIU_ACCESS_KEY', '');
- defined('QINIU_SECRET_KEY') || define('QINIU_SECRET_KEY', '');
- defined('QINIU_TEST_BUCKET') || define('QINIU_TEST_BUCKET', '七牛云空间名');
- defined('QINIU_BUCKET_DOMAIN') || define('QINIU_BUCKET_DOMAIN', '七牛云空间网址');
- defined('CALLBACK_URL') || define('CALLBACK_URL', '域名/kindeditor/php/callBack.php');
- defined('RETURN_URL') || define('RETURN_URL', '域名/kindeditor/php/returnBack.php');
- require_once ROOT_PATH."vendor/autoload.php";
在Kindeditor/php 下添加 qiniu_token.php 主要是生成上传用的 token
- <?php
- use Qiniu\Auth;
- require_once __DIR__."/config.php";
- // 构建鉴权对象
- $auth = new Auth(QINIU_ACCESS_KEY, QINIU_SECRET_KEY);
- $data = [
- 'returnUrl' => RETURN_URL,
- ];
- if (isset($_REQUEST['is_call'])) {
- $data = [
- 'callbackUrl' => CALLBACK_URL,
- 'callbackBody' => 'key=$(key)&hash=$(etag)&w=$(imageInfo.width)&h=$(imageInfo.height)'
- ];
- }
- // 生成上传 Token
- $token = $auth->uploadToken(QINIU_TEST_BUCKET, null, 3600, $data);
- echo json_encode([
- 'error' => 0,
- 'token' => $token
- ]);
在Kindeditor/php 下添加 callBack.php 主要是回调用
- <?php
- use Qiniu\Auth;
- require_once __DIR__."/config.php";
- $_body = file_get_contents('php://input');
- $auth = new Auth(QINIU_ACCESS_KEY, QINIU_SECRET_KEY);
- //回调的contentType
- $contentType = 'application/x-www-form-urlencoded';
- //回调的签名信息,可以验证该回调是否来自七牛
- $authorization = $_SERVER['HTTP_AUTHORIZATION'];
- $isQiniuCallback = $auth->verifyCallback($contentType, $authorization, CALLBACK_URL, $_body);
- if (!$isQiniuCallback) {
- echo json_encode([
- 'error' => 2,
- 'message' => '验证失败'
- ]);
- die();
- }
- $body = $_POST;
- $qiniu_url = QINIU_BUCKET_DOMAIN;
- if (!emptyempty($body['key'])) {
- echo json_encode([
- 'error' => 0,
- 'url' => $qiniu_url.$body['key']
- ]);
- die();
- }
- echo json_encode([
- 'error' => 1,
- 'message' => '视频上传出错'
- ]);
在Kindeditor/php 下添加 returnBack.php 主要是重定向接收地址
- <?php
- use Qiniu\Auth;
- require_once __DIR__."/config.php";
- $upload_ret = base64_decode($_GET['upload_ret']);
- $upload_ret = json_decode($upload_ret, true);
- $qiniu_url = QINIU_BUCKET_DOMAIN;
- if (!emptyempty($upload_ret['key'])) {
- echo json_encode([
- 'error' => 0,
- 'url' => $qiniu_url.$upload_ret['key']
- ]);
- die();
- }
- echo json_encode([
- 'error' => 1,
- 'message' => '视频上传出错'
- ]);
接下来是前端更改,我改的时视频上传
Kindeditor/plugins/media/media.js
- KindEditor.plugin('media', function(K) {
- var self = this, name = 'media', lang = self.lang(name + '.'),
- allowMediaUpload = K.undef(self.allowMediaUpload, true),
- allowFileManager = K.undef(self.allowFileManager, false),
- formatUploadUrl = K.undef(self.formatUploadUrl, true),
- extraParams = K.undef(self.extraFileUploadParams, {
- 'token': ''//添加token
- }),
- filePostName = K.undef(self.filePostName, 'file'), //更改文件上传名
- uploadJson = K.undef(self.uploadJson, 'https://up.qbox.me'); //更改上传地址,我用的时华东区的空间使用https
- ....
- function getQToken() {
- $.getJSON('/includes/kindeditor/php/qiniu_token.php', function (data) {
- K('[name="token"]', div).val(data.token);
- });
- }
- // 获取设置上传token
- getQToken();
- if (allowMediaUpload) {
- var uploadbutton = K.uploadbutton({
- button : K('.ke-upload-button', div)[0],
- fieldName : filePostName,
- extraParams : extraParams,
- url : uploadJson,//去除添加参数
- afterUpload : function(data) {
- ...
- });
这要就可以上传视频到七牛云了。
Tags: kindeditor七牛云上传
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)