萬(wàn)能文件在線預(yù)覽項(xiàng)目,開源!
支持 20 多種主流格式的文件在線瀏覽,這個(gè)項(xiàng)目值得學(xué)習(xí)。
編程導(dǎo)航開源倉(cāng)庫(kù):https://github.com/liyupi/code-nav
大家好,我是魚皮,今天分享一個(gè)優(yōu)秀的、100% 開源、持續(xù)更新的項(xiàng)目,拿來(lái)學(xué)習(xí)或者作為項(xiàng)目經(jīng)歷寫在簡(jiǎn)歷上都很不錯(cuò)。
項(xiàng)目介紹
kkFileView,是一個(gè)基于 Java SpringBoot 框架的文件文檔在線預(yù)覽項(xiàng)目,支持在瀏覽器中在線瀏覽各種主流格式的文件或文檔。
想要開發(fā)一個(gè)在線瀏覽文件的網(wǎng)站,非常不容易,每種格式都要做不同的處理,所以一般的項(xiàng)目能支持幾種格式就不錯(cuò)了。但 kkFileView 項(xiàng)目,經(jīng)支持多達(dá)幾十種格式!比如:
word、excel、ppt、pdf 等辦公文檔
txt、java、php、py、md、js、css、vue、bat 等所有純文本或代碼文件
支持zip、rar、jar、tar、gzip 等壓縮包
支持 jpg、jpeg、png、gif 等圖片預(yù)覽和操作
支持 mp3、mp4、flv 等多媒體文件預(yù)覽
文件列表頁(yè):

文本瀏覽效果:

項(xiàng)目特性
項(xiàng)目有很多優(yōu)秀特性,比如一鍵部署、快速接入,把源碼下載到本地,就可以在 Windows、Linux 平臺(tái)一鍵部署,兩行 JavaScript 代碼就可以讓文件接入預(yù)覽。甚至還支持 Docker 容器部署,非常方便。

項(xiàng)目的完成度極高,如上所說(shuō),支持幾十種常見的文件格式,文本、文檔、圖片、多媒體都不在話下,還兼容新版 Office 文檔、WPS 文檔!

項(xiàng)目支持多種預(yù)覽模式靈活切換,比如查看 word、ppt、pdf 文檔時(shí),可以用圖片的方式瀏覽和復(fù)制,也可以用 PDF 文檔的方式翻頁(yè)瀏覽。
讓我們打開一份 word 文檔,使用圖片瀏覽模式:

一鍵切換為 PDF 瀏覽模式:

項(xiàng)目的使用非常靈活,除了完整部署外,還提供了 Restful HTTP 接口,讓開發(fā)者可以使用各種不同的編程語(yǔ)言、跨平臺(tái)地接入文件瀏覽服務(wù),適用于微服務(wù)場(chǎng)景。
如果自己能夠開發(fā)出這樣一個(gè)完整又實(shí)用的系統(tǒng),技術(shù)上一定會(huì)有很大的提升,幸運(yùn)的是,作者給我們提供了學(xué)習(xí)的機(jī)會(huì)!
學(xué)習(xí)使用
作者將該項(xiàng)目完全開源至 GitHub 和 Gitee 上,目前在 GitHub 上已經(jīng)高達(dá) 5000 star!
項(xiàng)目的技術(shù)棧完全基于 Java,前端采用 FreeMarker 模板引擎,后端采用主流開發(fā)框架 SpringBoot、項(xiàng)目管理工具 Maven,以及主流的 Redis 和 Redisson 緩存技術(shù)。而且,由于項(xiàng)目的核心訴求是文件瀏覽和渲染,所以用到了各種文件格式的處理類庫(kù),比如 poi、office-plugin 等。毫不夸張地說(shuō),把這個(gè)項(xiàng)目學(xué)習(xí)完,基本任何文件格式的處理,都不在話下!

為了方便大家學(xué)習(xí),作者編寫了詳盡的項(xiàng)目文檔,包括部署指南、使用指南等等。

還整理了一些小白經(jīng)常遇到的問題,非常貼心了。

有興趣的同學(xué)可以直接下載源碼學(xué)習(xí)下,如果本文對(duì)您有幫助的話,也請(qǐng)幫忙點(diǎn)個(gè) 贊 啦!??
?? 項(xiàng)目地址:https://www.code-nav.cn/rd/?rid=17453ede607ee6ff02f74aec514eafa8
在 編程導(dǎo)航(www.code-nav.cn)中還能發(fā)現(xiàn)更多優(yōu)質(zhì)編程學(xué)習(xí)資源,歡迎分享給有需要的同學(xué)吧!
我是如何在大學(xué)期間通過自學(xué),拿到騰訊、字節(jié)等大廠 offer 的,可以看這篇文章,不再迷茫!
我學(xué)計(jì)算機(jī)的四年,共勉?。?span id="s0sssss00s" class="font-size-16">https://t.1yb.co/q0mS)
