目录
1.Docker安装kkfileview
2.kkfileview在docker部署后预览出现预览中的字体样式与源文件不同的解决办法
2.1. 物理机或虚拟机上运行
2.2. Docker容器环境环境运行
3.docker中更改kkfileview的配置文件application.properties
4.如何水印文本内容动态传值
动态水印
静态水印
5.扩展漏洞,修复
5.1 延伸:升级到4.1.0 版本后,提示限制目录运行
6.添加Office支持
1.Docker安装kkfileview
2.kkfileview在docker部署后预览出现预览中的字体样式与源文件不同的解决办法
由于在docker中每个容器都是独立的,存在此问题是因为部署docker后在容器中并没有对应的字体样式,因此会出现此问题,解决此问题的办法是将系统中的字体目录映射到kkfileview启动容器中的目录,以linux服务器为例,按照官网的部署方式:
2.1. 物理机或虚拟机上运行 #
从 码云发行版本 下载最新版发行包
解压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 即可看到项目演示用首
2.2. Docker容器环境环境运行 #
拉取镜像
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 即可看到项目演示用首页
3.docker中更改kkfileview的配置文件application.properties
项目需要对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
4.如何水印文本内容动态传值
动态水印:
在预览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:我的水印}
5.扩展漏洞,修复:
kkFileView-4.0.0及以前的版本,存在任意目录访问漏洞;建议升级到kkFileView-4.1.0及++版本;
漏洞复现:
http://localhost:8012/getCorsFile?urlPath=file:///etc/passwd
5.1 延伸:升级到4.1.0 版本后,提示限制目录运行:
路径加一个斜杠/,成功突破目录限制预览,但是暴500错误,
file:///etc/passwd 也是 500;base64也是 500。
应该目录限制是突破了,这个500错误暂时不清楚情况。
好像全站不支持脚本运行,附件上传默认上传到tmp目录,可以上传/etc/passwd.jsp 然后预览会在 tmp上级目录上传一个passwd.jsp,但是继续跳转目录不能成功。
6.添加Office支持:
首先安装 开源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,则参考:
链接地址1,链接地址2,链接地址3最全
Windows环境开发参考链接, 前端应用链接
如果本篇文章对你有帮助的话,很高兴能够帮助上你。文章来源:https://www.toymoban.com/news/detail-500607.html
当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。文章来源地址https://www.toymoban.com/news/detail-500607.html
到了这里,关于Docker安装kkfileview,kkfileview在docker部署后预览出现预览中的字体样式与源文件不同的解决办法,动态水印的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!