• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 (!empty($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 (!empty($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) {
          ...
    });

    这要就可以上传视频到七牛云了。

    以上这篇kindeditor 加入七牛云上传的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Kindeditor编辑器添加图片上传水印功能(php代码)
    • Kindeditor单独调用单图上传增加预览功能的实例
    • Kindeditor单独调用多图上传实例
    • node.js中实现kindEditor图片上传功能的方法教程
    • asp.net core集成kindeditor实现图片上传功能
    • js控件Kindeditor实现图片自动上传功能
    • nodejs 整合kindEditor实现图片上传
    • KindEditor图片上传的Asp.net代码实例
    • springmvc+kindeditor文件上传实例详解
    上一篇:Thinkphp5 微信公众号token验证不成功的原因及解决方法
    下一篇:三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    kindeditor 加入七牛云上传的实例讲解 kindeditor,加入,七牛,云,上传,