最近项目上在搞各种需求,其中一个需要在线预览文档,什么
Word
,PPT
,EXEL
,officeweb365
,还挺贵、并且实际测速过,预览速度并不快,尤其是超过50M
的文档,转码慢。但是最主要的还是只能部署在Windows server
上,不能在linux
部署,如果要用还得搞一台Windows
的服务器,是在太麻烦了。经过一系列的折腾,最终搞出来一个兼容设备和大多数文件的预览接口,特此记录一番,开放服务,请善待。
接口地址
//w.itggg.cn/onlinePreview?url=(附件地址:Base64编码格式)
精力有限,此接口不再维护,请自行搭建或使用官方地址:https://kkfileview.keking.cn/
特性
- 使用
spring boot
开发 rest
接口提供服务,跨平台特性(java
,php
,python
,go
,php
,....)都支持,应用接入简单方便
接入说明
注,只支持30M内文件预览,服务器资源有限,更大的预览需求建议自建接口,可找我协助
如果你的项目需要接入文件预览项目,达到对docx
、excel
、ppt
、jpg
等文件的预览效果,那么通过在你的项目中加入下面的代码就可以 成功实现
var url = 'http://127.0.0.1:8080/aHR0cHM6Ly9ib3MuaXQ='; //要预览文件的访问地址,Base64编码
window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(url));
新增多图片同时预览功能,接口如下:
var fileUrl =url1+"|"+"url2";//多文件使用“|”字符隔开
window.open('http://w.itggg.cn/onlinePreview?urls='+encodeURIComponent(fileUrl));
普通文件下载url预览
var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(url));
http/https下载流url预览
很多系统内不是直接暴露文件下载地址,而是请求通过id
、code
等参数到通过统一的接口,后端通过id
或code
等参数定位文件,再通过OutputStream
输出下载,此时下载url
是不带文件后缀名的,预览时需要拿到文件名,传一个参数fullfilename=xxx.xxx
来指定文件名,示例如下
var originUrl = 'http://127.0.0.1:8080/filedownload?fileId=1'; //要预览文件的访问地址
var previewUrl = originUrl + '&fullfilename=test.txt'
window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(previewUrl));
FTP下载url预览
FTP匿名访问
如果要预览的FTP url
是可以匿名访问的(不需要用户名密码),则可以直接通过下载url
预览,示例如下
var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址
window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(url));
非匿名访问,确定只有访问一台FTP服务器
如果预览服务只访问一台FTP
服务器,只需要在配置文件中配置FTP
链接信息,则可以直接通过下载url
预览,示例如下
var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址
window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(url));
非匿名访问,不只访问一台FTP服务器
如果预览服务要访问多台FTP
服务器,且用户名密码不一致,可以通过在url
中加入用户名密码等参数预览(url
参数中的优化于配置文件中的),示例如下
var originUrl = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址
var previewUrl = originUrl + '?ftp.username=xx&ftp.password=xx&ftp.control.encoding=xx';
window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(previewUrl));
预览效果
9 comments
提供拼多多代发 京东快递 淘宝代发,无需签收,单号网www.kuaidzj.com
dhd_klshx.cn 开通下 老哥
::aru:aru110::
红红火火恍恍惚惚
11111
老哥,随便啥附件源都可以吗?
违法乱纪的可不行
预览的效果还可以
欢迎白嫖
233333333333333
怎么用啊?大佬,我拼接地址后预览不了呢
设置了白名单,留下你的附件源出口域名。