七牛云上传--官方JSDK与photoClip截图Base64编码

本文详细介绍了如何使用七牛云服务进行图片上传,包括PHP后台生成uploadtoken,前端使用七牛官方JSDK上传原图,通过photoClip截图生成Base64编码图片,以及将Base64编码图片上传到七牛云的完整流程。同时,文中提及了可能遇到的地域问题和关键代码示例。
摘要由CSDN通过智能技术生成

主要
1、php后台生成七牛云uploadtoken
2、前端使用官方JSDK上传原图
3、photoClip截图 生成Base64图片
4、上传base64 编码图片到七牛云

php后台生成uploadtoken

下载php的SDK,然后引用SDK中的Auth即可:
七牛云官方php的SDK

use Think\Controller;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use Org\Net\Http;
class QiniuLogic extends Controller{
   
    public function get_token(){
   
        $accessKey = C("QINIU_ACCESS"); //这个是七牛云账号的access
        $secretKey = C("QINIU_SECRET"); //这个是七牛云账号的secret
        $bucket = C("QINIU_BUCKET");    //这个是七牛云的内容空间
        vendor("Qiniu/autoload");
        $auth = new Auth($accessKey, $secretKey);
        $policy = array(
            "scope"=>$bucket.":".$accessKey,
            "insertOnly"=>0
        );
        $uptoken = $auth->uploadToken($bucket, null, 36000, $policy);
        $this->assign("QiniuToken",$uptoken);           //我们要的token,必需
        $this->assign("QiniuDomain",C("QINIU_DOMAIN")); //这个是cname后的域名,非必须
    }
}

前端页面使用官方JSDK上传原图

首先,下载一个官方的JSDK
然后在html页面中引用js,官方文档中引用的比较多,这里引用两个:plupload.full.min.js和qiniu.min.js就够用了。
上传过程中可能出现地域的问题:
常见问题处理

html页面

    <div>
        <img id="image" src='{$gradeImg}' />
        <input type="hidden" id="qiniu-uptoken" value="{$QiniuToken}">
        <input type="hidden" id="qiniu-domain" value="{$QiniuDomain}">
        <input type="hidden" id="image_original" value="{$gradeImg}">
    </div>
    <!--七牛云直接上传,这里可以参考官方的文档-->
    <div id="qiniu-upload-container" style="display: none;">
        <button id="qiniu-upload-btn" class="btn btn-success">
            上传
        </button>
        <div id="fsUploadProgress">
        </div>
    </div>
    <!--七牛云直接上传end-->
    <!--七牛云图直接上传,upload.js 是自己需要写的,其它两个是SDK文件的-->
<script src="../qiniu/plupload/plupload.full.min.js"></script>
<script src="../qiniu/dist/qiniu.min.js"></script>
<script src="../qiniu/js/upload.js"></script>
<!--七牛云图直接上传end-->

JavaScript-upload.js

官方文档中有很多内容,这里做了一些简化:
主要修改‘FileUploaded’,‘key’和 randStr() 方法

$(function () {
   
    var uploader = Qiniu.uploader({
        runtimes: 'html5,flash,html4',
        browse_button: 'qiniu-upload-btn',
        container: 'qiniu-upload-container',
        drop_element: '',
        max_file_size: '10mb',
        flash_swf_url: 'bower_components/plupload/js/Moxie.swf',
        dragdrop: false,
        chunk_size: '2mb',
        multi_selection: !(mOxie.Env.OS.toLowerCase()==="ios"),
        uptoken: $('#qiniu-uptoken').val(),
        domain: $('#qiniu-domain').val(),
        get_new_uptoken: false,
        auto_start: true,
        log_level: 5,
        init: {
            'FilesAdded': function(up, files) {
   
                $("#qiniu-upload-btn").html("正在上传中..."
要实现这个功能,你需要进行以下步骤: 1. 创建一个Vue项目并集成Element UI 2. 集成七牛云的qnweb-rtc SDK 3. 实现视频通话相关的功能,如呼叫、接听、挂断等 4. 实现房间管理,如创建房间、加入房间、离开房间等 5. 实现视频画面展示、音频播放、屏幕共享等功能 下面是一些详细的步骤: 1. 创建一个Vue项目并集成Element UI 首先,你需要使用Vue CLI创建一个新的Vue项目,使用命令行输入以下命令: ``` vue create my-project ``` 然后,进入新项目的根目录,使用以下命令安装Element UI: ``` npm install element-ui -S ``` 接着,在项目的入口文件`main.js`中引入Element UI: ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 2. 集成七牛云的qnweb-rtc SDK 接下来,你需要集成七牛云的qnweb-rtc SDK。首先,在项目中安装SDK: ```bash npm install qnweb-rtc -S ``` 然后,在需要使用SDK的地方引入: ```javascript import QNRTC from 'qnweb-rtc' ``` 3. 实现视频通话相关的功能 在实现视频通话相关的功能之前,你需要了解一些基本概念,如房间、用户等。通常,每个房间都有一个唯一的房间ID,用户通过房间ID加入房间,并与房间中的其他用户进行视频通话。 以下是一些示例代码,用于呼叫、接听和挂断: ```javascript // 呼叫 call(userId) { const rtc = new QNRTC({ appId: 'your app id', userId: 'your user id', token: 'your token', }) rtc.call(userId) } // 接听 answer() { const rtc = new QNRTC({ appId: 'your app id', userId: 'your user id', token: 'your token', }) rtc.answer() } // 挂断 hangup() { const rtc = new QNRTC({ appId: 'your app id', userId: 'your user id', token: 'your token', }) rtc.hangup() } ``` 4. 实现房间管理 在实现房间管理功能之前,你需要先创建一个房间,然后将用户加入到该房间中。以下是一个示例代码: ```javascript // 创建房间 createRoom(roomId) { const rtc = new QNRTC({ appId: 'your app id', userId: 'your user id', token: 'your token', }) rtc.createRoom(roomId) } // 加入房间 joinRoom(roomId) { const rtc = new QNRTC({ appId: 'your app id', userId: 'your user id', token: 'your token', }) rtc.joinRoom(roomId) } // 离开房间 leaveRoom(roomId) { const rtc = new QNRTC({ appId: 'your app id', userId: 'your user id', token: 'your token', }) rtc.leaveRoom(roomId) } ``` 5. 实现视频画面展示、音频播放、屏幕共享等功能 最后,你需要实现视频画面展示、音频播放、屏幕共享等功能。七牛云的qnweb-rtc SDK提供了一些API,可以帮助你实现这些功能。以下是一个示例代码: ```javascript // 获取本地视频流 const rtc = new QNRTC({ appId: 'your app id', userId: 'your user id', token: 'your token', }) const localStream = rtc.getLocalStream() // 获取远程视频流 const remoteStream = rtc.getRemoteStream(userId) // 播放视频流 const video = document.getElementById('video') video.srcObject = localStream // 播放音频流 const audio = document.getElementById('audio') audio.srcObject = remoteStream.getAudioTracks()[0] // 屏幕共享 rtc.startScreenShare() ``` 以上是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。 总结 通过以上步骤,你可以使用Vue、Element UI和七牛云的qnweb-rtc SDK创建一个完整的视频会议系统。当然,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值