软件研究之kkFileView

标签: 无 分类: 未分类 创建时间:2024-08-22 02:56:27 更新时间:2024-11-24 10:04:02

1.前沿

在使用 jeecgboot 的时候,发现了一个好用的文件预览插件,就是 kkFileView,于是就花时间进行了研究和安装。使用 kkfileview 这个组件,可以对外提供服务,然后通过 url 实现文件预览。 后来我发现好像下载特别的麻烦,如果想要获取安装包,还需要付费。

参考文章:
【1】.项目简介
【2】.在线预览服务软件 kkFileView
【3】.项目中如何集成 kkFileView,实现几乎任意格式文件的预览
【4】.上传组件使用kkfileview实现文件预览 基于kkfileview:v2,修改上传组件(JUpload),支持点击文件预览。
【5】.Preview 将图片预览组件组件函数化。通过函数方便创建组件

2.安装

1
2
3
4
5
6
7
8
9
10
11
# 网络环境方便访问docker中央仓库
docker pull keking/kkfileview:4.1.0

# 网络环境不方便访问docker中央仓库
wget https://kkfileview.keking.cn/kkFileView-4.1.0-docker.tar
docker load -i kkFileView-4.1.0-docker.tar

# 运行
docker run -it -p 8012:8012 keking/kkfileview:4.1.0
# 后台运行
docker run -idt -p 10022:8012 keking/kkfileview

3.使用

当您的项目内需要预览文件时,只需要调用浏览器打开本项目的预览接口,并传入须要预览文件的url,示例如下:

1
2
3
4
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(previewUrl)));

4.修改配置文件

(1)先将容器内的文件 cp 出来,这样就有了完整的配置文件

1
2
3
4
5
6
7
8
9
# 从容器中将配置文件拷出来到当前目录下
docker cp [容器id]:/opt/kkFileView-4.1.0-SNAPSHOT/config/application.properties .
# 修改配置文件
vi application.properties
# 将配置文件重新拷回容器内
docker cp application.properties [容器id]:/opt/kkFileView-4.1.0-SNAPSHOT/config/
# 重启容器
docker stop [容器id]
docker start [容器id]

4.nginx代理

修改配置文件

1
2
3
server.context-path = /fileview/
#nginx 的访问地址
base.url = https://127.0.0.1:443/fileview/

修改nginx,fileview后面没有加 /,要是加了可能就访问不到了。

1
2
3
4
5
6
7
location /fileview{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 本地运行的kkFileView的地址
proxy_pass http://127.0.0.1:8012;
}
参考文章:
【1】.使用Nginx代理kkFileView
【2】.nginx配置问题 这个不要加,nginx location里后面有没有 / 是不一样的

5.禁止复制图片等

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。