最近项目上在搞各种需求,其中一个需要在线预览文档,什么WordPPTEXELPDF,图片啥玩意儿的,并且要适配移动端,兼容各种设备。之前考虑过,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内文件预览,服务器资源有限,更大的预览需求建议自建接口,可找我协助

 
如果你的项目需要接入文件预览项目,达到对docxexcelpptjpg等文件的预览效果,那么通过在你的项目中加入下面的代码就可以 成功实现

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预览

很多系统内不是直接暴露文件下载地址,而是请求通过idcode等参数到通过统一的接口,后端通过idcode等参数定位文件,再通过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));

 

预览效果

                              

Last modification:June 16, 2021
如果你想请我喝奶茶的话