前言

新人博主不知写点啥,目前也只是一个技术小白,比起技术干货,还是分享下近期公司项目中用到的一款有意思的文档在线预览SaaS服务:永中云预览。

需求

  • 支持Office文件、CAD、OFD等多种格式;
  • 文档加密,支持添加水印,不可被复制,不可被下载;
  • 支持多终端、适配移动端;
  • 支持前端简易接入。

方案

针对以上需求,我们也经过了一轮技术选型,最终选择了永中云服务中的永中云预览。永中云服务是当代云计算飞速发展的产物,免去了传统方式的硬件成本投入,仅需轻量级开发,几行代码轻松实现文档在线预览。

具体实现

成为开发者并申请应用:

进入永中云服务根据官网开发文档-快速入门指引完成开发者认证和并申请应用,从而获得如图的APPID和APPKEY。

根据开发文档中的接入指南,进行代码开发:

  • 第一步:基于你所使用的开发语言,下载对应的SDK;这里我选择的是永中云服务提供的JS SDK(SDK下载地址、DEMO下载地址)。
function generateSign(secret, params) {var fullParamStr = uniqSortParams(params);return hmacSHA256(fullParamStr, secret);
}function uniqSortParams(params) {delete params.sign;var var5 = [];var var6 = 0;for (var key in params) {var5[var6] = key;var6++;}var5.sort(function (a, b) {return a.localeCompare(b, 'zh-CN');});var result = "";for (var var7 = 0; var7 < var5.length; var7++) {var key = var5[var7]var var8 = params[key];var8.sort(function (a, b) {return a.localeCompare(b, 'zh-CN');});if (var8 != null && var8.length > 0) {for (var var9 = 0; var9 < var8.length; var9++) {result += key + "=" + var8[var9];}} else {result += key + "=";}}return result;
}function hmacSHA256(data, key) {data != null ? data : "";var var2 = CryptoJS.HmacSHA256(data, key);var var3 = var2.toString(CryptoJS.enc.Hex);return var3.toUpperCase();
}
  • 第二步:对接上传文档、在线预览接口;如下demo仅个人使用,实际项目使用中需针对appId和appKey进行加密处理。
<!doctype html>
<html lang="zh">
<head><meta charset="utf-8"><title>永中预览服务接入简易版</title><!-- 永中signClient算法插件引入 --><script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script><script src="./signclient.js"></script>
</head><body><form name="form1" id="form1"><!-- 这里的name记得要用file --><input id="upfile" type="file" name="file"></input></form><input type="button" id="upJS" value="上传"><input type="button" id="preview" value="预览"><script>var fileVersionId = '';// 上传按钮document.getElementById("upJS").onclick = function () {var form=document.getElementById("form1");var file=new FormData(form);var ajax = new XMLHttpRequest();// 永中接口每一次调用都需要进行对sign的计算// 永中提供了signClient的算法插件,我们将当前调用的接口所需的参数和永中appKey传入generateSign函数中,即可得到sign。var sign = generateSign("你的appKey", {"appId": ["你的appId"]});ajax.open("post", "http://dmc.yozocloud.cn/api/file/upload?appId=你的appId&sign="+sign, true); ajax.onload = function () {console.log("准备完毕");};ajax.send(file);ajax.onreadystatechange = function () {if (ajax.readyState == 4 && ajax.status == 200) {if (ajax.responseText){var response = JSON.parse(ajax.responseText);if (response.errorcode == 0) {fileVersionId = response.data.fileVersionId;}}}}}// 预览按钮document.getElementById("preview").onclick = function () {if (fileVersionId != '') {// 这里一样先算sign,我这里还带入了防复制参数var sign = generateSign("你的appKey", {"appId": ["你的appId"], "fileVersionId": [fileVersionId], "isCopy": [1]});var url = "http://eic.yozocloud.cn/api/view/file?fileVersionId=" + fileVersionId + "&appId=你的appId&isCopy=1&sign=" + sign;window.open(url, '_blank').location;} else {alert('请先上传文件');} }
</script>
</body>
</html>
  • 第三步:运行,查看效果

总结

点赞、评论、收藏! 一键三连哦~

文档在线预览解决方案-永中云预览服务相关推荐

  1. office文档在线预览工具平台选型

    ​​​​​​在线预览原理 文档在线预览说明: 1.业务系统生成文档浏览地址,用户通过终端进行访 2.用户终端访问文档预览资源地址,请求文档解析器,解析器分为私有云和公有云部署,作用是将文档进行解析成x ...

  2. office 文档在线预览新姿势之永中云转换

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者需要毕业设计,大作业指导,购买付费源码等,欢迎指教: 企鹅:869192208 文章目录 前言: 一.接入准备 二.预览 w ...

  3. 永中云转换支持PPT动画播放 为文档在线预览多面赋能

    随着永中DCS文档在线预览4.0全新升级之后,其公有云版本--永中云转换也得到了全面升级,除了文档在线预览品质得到大幅提升之外,PPT动画播放预览在云转换上也支持了!平台升级之后,很快获得了文档在线预 ...

  4. Office 文档在线预览解决方案

    目录 一.前言 二.解决方案 1.方案一:使用开源项目搭建私服 2.方案二:永中云转换 3.方案三:XDOC 4.方案四:Office Web 365 三.总结 一.前言 对于 offic 文档,在电 ...

  5. 文档在线预览产品系列-解决方案篇

    文档在线预览产品系列-解决方案篇 hello 大家好,我又来了,上次我们聊到文档在线预览市场的产品类别有很多,今天我们就来盘点下各个类别以及对应的一些产品品牌. 产品类别 开源项目 开源项目是啥就不多 ...

  6. JAVA-文件文档在线预览项目解决方案-kkFileView

    1. 简介 kkFileView是文件文档在线预览项目解决方案,对标业务付费产品有 永中office,office365,idocv等.该项目使用六星的springboot大家,易上手和部署,基本支持 ...

  7. WEB文档在线预览解决方案

    WEB文档在线预览解决方案 参考文章: (1)WEB文档在线预览解决方案 (2)https://www.cnblogs.com/lizhao123/p/11581971.html (3)https:/ ...

  8. 推荐一款文件文档在线预览解决方案

    真正的大师,永远都怀着一颗学徒的心! 今天给大家推荐一款文件文档在线预览解决方案.同学们,我们在开发的过程中,对于一些管理系统肯定有文档在线预览的需求.对于简单的文档,用谷歌的在线文档可以直接处理.但 ...

  9. 如何实现文档在线预览

    从事软件开发已经有快5个年头了.在我经历过的每一家公司都避免不了有需要做文档在线预览的功能.那么客户为什么需要文档在线预览的功能呢?可能包括以下几点, 1.开发的系统支持文件可下载,那么客户肯定会再次 ...

最新文章

  1. 吐司面包的做法_无糖粗粮吐司面包的做法+配方,超柔超软,一次发酵
  2. 日志库EasyLogging++学习系列(11)—— 共享日志库
  3. LightOJ - 1404 Sending Secret Messages(最小费用最大流)
  4. python 熊猫_python之pandas简单介绍及使用(一)
  5. 领域应用 | 到底什么时候使用图数据库?
  6. Kubernetes-DaemonSet(六)
  7. RQNOJ PID379 / 约会计划 -并查集
  8. 程序设计模式浅析(plain framework商业版设计模式)
  9. python与线性代数 向量方程
  10. 华为机试HJ74:参数解析
  11. 地图上制作线路的动画_R制作动画地图
  12. mysql统计一张表中条目个数的方法
  13. Websphere9.0的安装
  14. 离散数学 06.05 同构及同态
  15. css3上下滑动,CSS3 上下浮动的页面滚动提示箭头
  16. bios显示计算机故障,笔记本电脑BIOS出现故障怎么办 常见BIOS故障解决方案
  17. ​电脑上的回收站怎么隐藏 ,怎么隐藏桌面回收站图标
  18. 只有资源共享 中国共享软件才能突破性发展
  19. 记录下载com.mysql.jdbc.Driver驱动包过程
  20. 如何设置交易滑点?精确到tick 测算期货冲击成本(附源码)

热门文章

  1. 5.11黄金最新行情走势分析及多空交易策略
  2. Android电话系统rild-概述篇
  3. c语言实现向量,如何在C中实现向量
  4. Python实现下载小说,图片章节自动识别转文字
  5. rsync 远程同步部署 上行下行同步
  6. 整理常用iOS的第三方框架
  7. Winform框架中内容的学习
  8. IDV在客户端开更新提示“有差异盘,不能更新。”字样。
  9. EF Core 中实现 动态数据过滤器
  10. datepicker 限制只能选择7天的两种方式