文档中心
ZegoSuperBoard 超级白板
文档中心
体验 App
SDK 中心
API 中心
常见问题
代码市场
进入控制台
立即注册
登录
中文站 English
  • 文档中心
  • 超级白板
  • 基础功能
  • 共享文件管理

共享文件管理

更新时间:2024-11-20 18:04

共享文件管理包含上传文件和缓存文件两个部分。

上传文件

当用户需要创建文件白板时,用户需要先将文件上传至 ZEGO 文件云服务,获得该文件的 fileID(将被永久保存并适用于所有房间)。

这个 file ID 将会在创建文件白板时使用,详情请参考 创建超级白板 - 创建白板。

建议您将文件的名称和 fileID 一一对应,以便快速访问。

ZEGO 超级白板支持客户端 API 和服务端 API 两种方式上传文件。

客户端 API

对于 ZEGO 超级白板 SDK 而言,文件可分为普通文件和 H5 文件。因此,当上传不同类型的文件时,需要调用不同的上传接口。

普通文件包含:

  • PPT 演示文稿文件
  • 文档类文件(Word/PDF)
  • 表格类文件(Excel)
  • 图片类文件(JPG/JPEG/PNG/BMP)
  • 文本类文件(TXT)

上传的文件必须满足相应的规范:

  • 文件请使用 Microsoft Office 2013 或以上版本编辑/保存,不支持低版本 Microsoft Office 或其他办公软件保存的文件,如 WPS、Keynote、Microsoft Office 2003 等。
  • 文件必须是可编辑的,不支持“只读”、“加密”、或其他受保护的文档,否则会导致转码失败。

全部规范请参考 文件规范。

上传普通文件 上传 H5 文件

调用 uploadFile 方法上传普通文件。

var file; // 待上传文件
if (!file) return alert('请先选择文件');
var zegoSuperBoard = ZegoSuperBoardManager.getInstance();
//上传文件后转码后渲染模式类型,如果用户涉及到 iOS、Web、Windows、Mac、小程序各端的业务,推荐使用 VectorAndIMG 模式。
zegoSuperBoard
    .uploadFile(file, renderType, function(infoMap) {

<pre><code>    // 上传中...
    if(infoMap.status === ZegoSuperBoardUploadFileState.UPLOADING){

    }
    // 排队中...
    if(infoMap.status === ZegoSuperBoardUploadFileState. WAITING){

    }
    // 转码中...
    if(infoMap.status === ZegoSuperBoardUploadFileState.CONVERTING){

    }
    // 转换成功
    if(infoMap.status === ZegoSuperBoardUploadFileState.CONVERTED){
        // 获得转码成功的文件 ID
        var fileID = infoMap.fileID;
    }

})
.then(function(fileID) {
    // 这里上传完成立即创建文件白板,开发者根据实际情况处理
})
.catch(function(error){
    // 上传失败
    console.log(error)
});</code></pre>
<pre><code>  &lt;/md-content&gt;
&lt;/div&gt;
&lt;!--嵌套其它html模板示例--&gt;
&lt;div class=&quot;multipletabs-content-item &quot;&gt;
  &lt;md-content&gt;
通过 [ZegoSuperboardCustomH5Config\|_blank](/article/api?doc=superboard_API~javascript_web~interface~ZegoSuperboardCustomH5Config) 设置上传 H5 文件的配置参数,并调用 [uploadH5File\|_blank](/article/api?doc=superboard_API~javascript_web~class~ZegoSuperBoardManager#upload-h5-file) 方法上传 H5 文件。

``` javascript

var selectedH5File = null; // 当前选择的 H5 压缩包文件

var config = {
    width: 1600, // 自定义文件的宽
    height: 900, // 自定义文件的高
    pageCount: 7, // 自定义文件的页数
    // 自定义文件缩略图相对路径数组
    thumbnailList: [&#39;thumbnail/1.png&#39;,&#39;thumbnail/2.png&#39;,&#39;thumbnail/3.png&#39;,&#39;thumbnail/4.png&#39;,&#39;thumbnail/5.png&#39;,&#39;thumbnail/6.png&#39;,&#39;thumbnail/7.png&#39;]
};
zegoSuperBoard
    .uploadH5File(selectedH5File, config, function(res) {
        // 上传进度
        console.log(res.uploadPercent + &#39;%&#39;);
    })
    .then(function(fileID) {
        // 上传成功,得到 H5 文件 ID
        // 这里上传完成立即创建文件白板,开发者根据实际情况处理
    })
    .catch(function(error) {
        // 上传失败
        console.log(error)
    }); </code></pre>

文件上传分为上传中,排队中,转换中,和转换成功等多个阶段。具体上传状态请查看 ZegoSuperBoardUploadFileState

  • 上传阶段:如果正常上传,会产生多次回调,每次都包含文件上传进度。例如当前上传 50%,则 "infoMap" 内容为 {"uploadPercent":0.50};当前上传 100%,则 "infoMap" 内容为 {"uploadPercent":1.00}。
  • 格式转换阶段:如果转换成功,只产生一次回调,包含转换后的文件 ID。例如当前转换完成,则 "infoMap" 内容为 {"fileID":"ekxxxxxxxxv"}。

服务端 API

服务端 API 仅支持上传普通文件,详情请参考服务端接口文档 请求文件转码。

缓存文件

当用户上传文件并获取文件的 fileID 之后,如需提高文件加载速度,可以在调用 ZegoSuperBoardManager 的 createFileView 接口创建文件白板之前,提前缓存该文件。

调用 cacheFile 方法提前请求该文件中的资源。


var zegoSuperBoard = ZegoSuperBoardManager.getInstance()
zegoSuperBoard.cacheFile(fileID).then(function(res){
    // 回调中返回的参数:failedFileNum - 请求失败资源数,totalFileNum - 该文件预请求总资源数
}).catch(function(error){
    // 缓存失败
})
本篇目录
  • 免费试用
  • 提交工单
    咨询集成、功能及报价等问题
    电话咨询
    400 1006 604
    咨询客服
    微信扫码,24h在线

    联系我们

  • 文档反馈