赞
踩
目录
2.kkfileview在docker部署后预览出现预览中的字体样式与源文件不同的解决办法
3.docker中更改kkfileview的配置文件application.properties
由于在docker中每个容器都是独立的,存在此问题是因为部署docker后在容器中并没有对应的字体样式,因此会出现此问题,解决此问题的办法是将系统中的字体目录映射到kkfileview启动容器中的目录,以linux服务器为例,按照官网的部署方式:
从 码云发行版本 下载最新版发行包
解压kkFileView-x.x.x文件(Windows用.zip包,Linux/MacOS用.tar.gz包)
打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh)
浏览器访问本机8012端口 http://127.0.0.1:8012 即可看到项目演示用首
拉取镜像
docker pull keking/kkfileview
原运行方式:
docker run -it -p 8012:8012 keking/kkfileview
修改为:
下载如下字体包 http://kkfileview.keking.cn/fonts.zip 文件解压完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行命令:mkfontscale 、mkfontdir 、fc-cache使字体生效
运行docker时,将其目录映射到容器中
运行方式修改为:
docker run -it -p 8012:8012 -d --privileged=true -v /usr/share/fonts/:/usr/share/fonts keking/kkfileview
浏览器访问容器8012端口 http://xxx.xxx.xxx.xxx:8012 即可看到项目演示用首页
项目需要对kkfile指定预览文件的路径地址,需要在docker中更改或者外挂新的配置文件.
docker中kkfileview的配置文件地址为/opt/kkFileView-xxx/config(xxx为kkfileview的版本号,看你安装的是什么版本,比如我的是/opt/kkFileView-3.5.1/config)
修改该配置文件功能,如:水印,控制下载,预览等
docker 启动时外挂配置文件方式
run命令后面加上 -v (新的配置文件地址):/opt/kkFileView-3.5.1/config/application.properties
【注】一般容器里面的 Linux是精简版的,没有 less 、cat 、vim/vi 等命令,如果需要的话可以自己安装,默认自带 APT 命令。
APT安装vim,先进入需要安装的容器(docker exec -it 容器标识 bash ),再执行如下命令:
更新:
apt update
安装vim:
apt-get install vim
在预览url后面加上参数&watermarkTxt即可
var url = ‘http://127.0.0.1:8080/file/test.txt’;
//要预览文件的访问地址
window.open(‘http://127.0.0.1:8012/onlinePreview?url=’ + encodeURIComponent(url) + ‘&watermarkTxt=’ + encodeURIComponent(‘动态水印’));
直接在application.properties配置文件中修改:watermark.txt = ${WATERMARK_TXT:我的水印}
kkFileView-4.0.0及以前的版本,存在任意目录访问漏洞;建议升级到kkFileView-4.1.0及++版本;
漏洞复现:
http://localhost:8012/getCorsFile?urlPath=file:///etc/passwd
路径加一个斜杠/,成功突破目录限制预览,但是暴500错误,
file:///etc/passwd 也是 500;base64也是 500。
应该目录限制是突破了,这个500错误暂时不清楚情况。
好像全站不支持脚本运行,附件上传默认上传到tmp目录,可以上传/etc/passwd.jsp 然后预览会在 tmp上级目录上传一个passwd.jsp,但是继续跳转目录不能成功。
首先安装 开源OFFICE openoffice或LibreOffice 建议安装LibreOffice;
LibreOffice或OpenOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)。
修改kkfileview配置参数 : office.home
cd kkFileView-4.1.0/config/application.properties
- # 说明:加粗标识具体情况修改
- server.port = ${KK_SERVER_PORT:8012}
-
- #文件资源路径
- file.dir = ${KK_FILE_DIR:/data/app/kkfileview/kkFileView-4.1.0/temp}
-
- ###################### office-plugin #####################
- ##office服务的进程数,默认开启两个进程
- office.plugin.server.ports = 2021,2022
-
- #office组件home路径, Linux查看路径:which libreoffice*
- # linux中目录是/opt/libreoffice7.1,差异版本不同
- office.home = ${KK_OFFICE_HOME:/opt/libreoffice7.4}
如果本地没有安装libreoffice,则参考:
如果本篇文章对你有帮助的话,很高兴能够帮助上你。
当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。