kkFileView介绍
kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等
官网:https://kkfileview.keking.cn/
源码:https://gitee.com/kekingcn/file-online-preview
docker部署
这里准备使用docker部署,并且通过nginx转发配置https,以下是启动脚本:
docker run --name kkfile -p8012:8012 \
-e KK_BASE_URL="https://home.chengpei.top:8443/kkfile" \
-e KK_CONTEXT_PATH="/kkfile" \
-d keking/kkfileview:4.1.0
其中比较重要的两个参数是KK_BASE_URL、KK_CONTEXT_PATH
KK_BASE_URL: 提供预览服务的地址,如果使用nginx等反向代理,需要手动设置为通过nginx访问预览服务的地址,默认值空
KK_CONTEXT_PATH: kkFileView运行时tomcat的ServletContext,默认值:/
其他的一些配置参数可以参考源码中的配置项:https://gitee.com/kekingcn/file-online-preview/blob/master/server/src/main/config/application.properties
因为我这里要配置Nginx访问,为了方便转发请求配置了统一的前缀/kkfile,然后Nginx里配置SSL证书,以及转发的路由即可
location /kkfile {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://172.20.0.12:8012;
}
配置好后即可预览,使用方法参数官网文档:https://kkfileview.keking.cn/zh-cn/docs/usage.html
预览http图片问题
使用过程中发现一个奇怪的问题,我的kkfile地址是https的,预览的图片是http的,结果预览时自动把图片地址替换为了https,所以访问不到,如图:
但是预览PDF文件就没有此问题,观察后发现pdf文件会在服务端获取,转发到游览器预览,但是图片会把图片访问地址直接丢给游览器,我用的chrome游览器,刚好新版本的谷歌浏览器为了加强安全性,会改协议头将http改为https导致这个问题,实测换其他游览器就不会这样,具体参考这个bug:https://gitee.com/kekingcn/file-online-preview/issues/IAF4GP
评论区