office文件在线预览

需求背景

    最近学妹她们那边有一个项目类似在线网盘的东西,支持文件上传保存。其中除了普通text文本以外,还有如office文件word、excel、ppt等文件,并且提供在线预览的功能。用户能够在线预览文件内容,并且分享预览链接出去的word不能下载到这个文件,不能暴露实际文件URL路径。她那边不知道怎么来处理这个问题,所以自然问了我一下。恰好之前这块我也做过一些这方面的项目,罗列几个处理方案。

解决方案

1.openoffice转化

    推荐指数: 2 颗星

    Apache下有一款软件基于Java开发的软件openoffice可以运行在Linux并且支持将Word文件转化为PDF或者HTML页面。我们可以利用这个软件对我们上传的文件通过这个openoffice提供的转化接口转化得到PDF或者HTML页面,这样我们再使用一个HTML页面把生成的PDF或者HTML整合一下就能达到预览目的了。

可以参考我以前记录博客: openoffice转化

    虽然可以支持预览问题,不过这种方式不是很靠谱各种语言调用接口方式不同,API不太友好,效果不是比较令人满意,需要采坑。

2.微软在线预览接口

    推荐指数: 3 颗星

    可以参考我的博客:     微软在预览

    预览效果倒是相对openoffice好,但是还是不能避免那个下载问题。文档的真实URL暴露,则其实分享预览链接的时候文档也暴露了。

3.永中文档

    推荐指数: 5 颗星

     官网:   永中文档官网

     这个解决方案也是同事之前他们项目采用的,简单、快捷可以把剩余精力放在其他开发的地方。

     永中文档提供针对Office文档预览、在线编辑等功能等的一个产品。主要是能够满足我们的需求:

    1.能够实现在线预览的基本要求
    2.不会暴露我们文档的下载地址
    3.支持预览链接过期时间

    还有一些附加的功能可以设置我们的文档水印、防文本复制等等。而且商用版本支持私有云部署,可以支持部署在公司内网作为预览服务器。免费版只需要注册用户,添加域名即可使用,还算是相对方便的。 获取预览地址,调用API代码很简单,几行代码就搞定了。

    下面我做调用接口弄个demo大家可以看一下,官网注册账号我就不说了。进入公有云服务中心,新增域名,之后通过GET接口即可转化拿到预览地址。

1.添加域名
office文件在线预览_第1张图片
每个域名会拿到一个key,这个域名就是我们的网站的域名。 之后通过代码调用get请求就能拿到json字符串, json中拿到预览URL地址:

  1. 获取预览地址文档
    office文件在线预览_第2张图片
  2. PHP代码案例


$key = '47869076824915968173682';  // 永中文档后台获取到的key
$myDomain = 'https://xxx.com/my.pptx'; // 自己域名文件所处路径

$url = "http://api.yozocloud.cn/getPreview?k={$key}&url={$myDomain}";
$respJson = file_get_contents($url);
$respArr  = json_decode($respJson, true);
var_dump($respArr);
$previewUrl = $respArr["data"]["data"]; // 拿到预览的URL地址

office文件在线预览_第3张图片

你可能感兴趣的:(杂谈,office,office在线预览,永中文档预览)