首先要感謝碼雲開源項目對文件預覽提供的支持和帶來的便利,大家可以去參考學習(安利一波~)
開源地址: https://gitee.com/kekingcn/file-online-preview
在對kkfileview預覽服務功能的學習之中遇到了部分問題,特作此筆記記錄,也希望能幫到迷茫的大家
一、服務部署
kkfileview提供了多種部署方式
1) 物理機或虛擬機上運行
1. 從 碼雲發行版本 下載最新版發行包
2. 解壓kkFileView-2.x.x.zip包
解壓命令: unzip kkFileView-2.x.x.zip
其中,若服務器中未支持unzip命令,需要執行:
安裝命令: yum install zip #安裝打包服務命令 提示輸入時,請輸入y;
安裝命令:yum install unzip #安裝解壓服務命令 提示輸入時,請輸入y;
3. 打開解壓後文件夾的bin目錄,運行startup腳本(Windows下以管理員身份運行startup.bat
,Linux以root用戶運行startup.sh
)
4. 瀏覽器訪問本機8012端口(http://127.0.0.1:8012 )即可看到項目演示用首頁
如遇到服務爲正常啓動時,可查看log文件定位問題
環境要求:
1.Java: 1.8+
2.OpenOffice或LiberOffice(Windows下已內置,CentOS或Ubuntu下會自動下載安裝,MacOS下需要自行安裝)
2)Docker容器環境環境運行
1. 拉取鏡像
docker pull keking/kkfileview
2. 運行
docker run -it -p 8012:8012 keking/kkfileview
3. 瀏覽器訪問容器8012端口(http://xxx.xxx.xxx.xxx:8012 )即可看到項目演示用首頁
docker容器部署方式,由於拉取鏡像過程中下載文件大小略大且docker連接總是中斷,未能測試完成
二、項目如何接入使用
此項目爲spring boot服務(內置tomcat),單獨部署不需要集成業務系統中
部署完服務後在前端頁面配置地址訪問即可
var url = 'http://127.0.0.1:8080/file/test.txt'; //要預覽文件的訪問地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(previewUrl));
如果在內網環境中, 不想開放端口或開放服務可配置在業務系統nginx配置文件中做服務轉發
# 文件預覽代理配置
location /fileview/ {
proxy_pass http://服務器IP:8012/;
}
前端地址即可通過以下地址訪問:
http://nginx服務地址:端口/fileview/onlinePreview?url=要預覽文件的訪問地址
三、遇到的問題
1. Linux服務器打開doc文件時會出現空白或亂碼的情況,可能造成該問題的原因有:
a. 編碼問題(但是根據官方文檔中的修改配置文件的方法未見成效)
b. 系統缺少字體導致(通過該處理解決問題)
首先需要確認系統中是否缺少字體文件(centos7.4環境)
進入到下述文件夾中查看 cd /user/share/fonts
如缺少文件,將Windows下的C:\Windows\Fonts 目錄下的文件完整拷貝到Linux下的 /usr/share/fonts目錄
依次執行下述命令使字體生效:
mkfontscale
mkfontdir
fc-cache
#如缺少命令服務,首先執行以下命令:
yum install mkfontscale #開啓mkfontscale服務
yum install fontconfig #開啓fc-cache服務
據開源項目下問題討論中,有人提到需要重啓服務器才能生效,測試發現重新啓動kkfileview服務就能生效。
不積硅步無以至千里,不積小流無以成江海;