Loading... > 最近项目上在搞各种需求,其中一个需要在线预览文档,什么`Word`,`PPT`,`EXEL`,`PDF`,图片啥玩意儿的,并且要适配移动端,兼容各种设备。之前考虑过,`officeweb365`,还挺贵、并且实际测速过,预览速度并不快,尤其是超过`50M`的文档,转码慢。但是最主要的还是只能部署在`Windows server`上,不能在`linux`部署,如果要用还得搞一台`Windows `的服务器,是在太麻烦了。经过一系列的折腾,最终搞出来一个兼容设备和大多数文件的预览接口,特此记录一番,暂不直接开放,有需求的同学请留言申请,直接留下附件源的访问域名即可。 ## 接口地址 <div class="tip inlineBlock success"> **//w.itggg.cn/onlinePreview?url=(附件地址:Base64编码格式)** </div> ## 特性 - 使用`spring boot`开发 - `rest`接口提供服务,跨平台特性(`java`,`php`,`python`,`go`,`php`,....)都支持,应用接入简单方便 ## 接入说明 <div class="tip inlineBlock warning"> **注,只支持30M内文件预览,服务器资源有限,更大的预览需求建议自建接口,可找我协助** </div> 如果你的项目需要接入文件预览项目,达到对`docx`、`excel`、`ppt`、`jpg`等文件的预览效果,那么通过在你的项目中加入下面的代码就可以 成功实现 ```javascript var url = 'http://127.0.0.1:8080/aHR0cHM6Ly9ib3MuaXQ='; //要预览文件的访问地址,Base64编码 window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(url)); ``` 新增多图片同时预览功能,接口如下: ```javascript var fileUrl =url1+"|"+"url2";//多文件使用“|”字符隔开 window.open('http://w.itggg.cn/onlinePreview?urls='+encodeURIComponent(fileUrl)); ``` ## 普通文件下载url预览 ```javascript 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`来指定文件名,示例如下 ```javascript 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`预览,示例如下 ```javascript var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址 window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(url)); ``` ### 非匿名访问,确定只有访问一台FTP服务器 如果预览服务只访问一台`FTP`服务器,只需要在配置文件中配置`FTP`链接信息,则可以直接通过下载`url`预览,示例如下 ```javascript var url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址 window.open('http://w.itggg.cn/onlinePreview?url='+encodeURIComponent(url)); ``` ### 非匿名访问,不只访问一台FTP服务器 如果预览服务要访问多台`FTP`服务器,且用户名密码不一致,可以通过在`url`中加入用户名密码等参数预览(`url`参数中的优化于配置文件中的),示例如下 ```javascript 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)); ``` ## 预览效果 <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vMjYwOTQ2MDkyLnhtbA==","_blank")'>XML</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vZG9tZS54bHN4","_blank")'>表格</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vamltaS/jgIrlj4jlr4Llr57lj4jnvo7lpb3jgIvlh6DnsbMucGRm","_blank")'>PDF</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vZG9tZTIucHB0eA==","_blank")'>PPT</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vZG9tZTMuZG9jeA==","_blank")'>文档</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vZG9tZS50eHQ=","_blank")'>TXT</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vZG9tZS5tZA==","_blank")'>MD</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vZG9tZTUuanBn","_blank")'>图片</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vc3FsLnNxbA==","_blank")'>SQL语句</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vdGVybWluYXRlUHJvY2Vzcy5zaA==","_blank")'>SH脚本</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vd2luZG93LnB5","_blank")'>Python代码</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vRGF0YUNvbW1hbmQuamF2YQ==","_blank")'>JAVA代码</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vbWVtb3J5LmpzcA==","_blank")'>JSP</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vVXdmU2VydmljaW5nTWFzdGVyU2NyaXB0LmNtZA==","_blank")'>CMD命令</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vQnVpbGQuYmF0","_blank")'>BAT脚本</button> <button class="btn m-b-xs btn-info btn-rounded " onclick='window.open("https://w.itggg.cn/onlinePreview?url=aHR0cHM6Ly9ib3MuaXRnZ2cuY24vY2FkLmR3Zw==","_blank")'>DWG图纸</button> Last modification:January 5th, 2021 at 10:24 am © 禁止转载 Support 如果你想请我喝奶茶的话 ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat
dhd_klshx.cn 开通下 老哥

红红火火恍恍惚惚
11111
老哥,随便啥附件源都可以吗?
违法乱纪的可不行
预览的效果还可以
欢迎白嫖
233333333333333
怎么用啊?大佬,我拼接地址后预览不了呢
设置了白名单,留下你的附件源出口域名。