強推!一個項目實現所有文件類型的預覽功能!

来源:https://www.cnblogs.com/codechen8848/archive/2023/11/20/17843865.html
-Advertisement-
Play Games

大家好,我是 Java陳序員。 我們在工作中,經常需要與文件上傳下載進行打交道。甚至有時候要實現文件預覽功能。 如果是一兩種的文件類型,我們或許可以藉助一些插件完成工作,那麼如果是要適配各式各樣的文件類型呢? 今天,給大家介紹一個支持預覽多種文件類型的開源項目 —— kkFileView. 項目介紹 ...


大家好,我是 Java陳序員

我們在工作中,經常需要與文件上傳下載進行打交道。甚至有時候要實現文件預覽功能。

如果是一兩種的文件類型,我們或許可以藉助一些插件完成工作,那麼如果是要適配各式各樣的文件類型呢?

今天,給大家介紹一個支持預覽多種文件類型的開源項目 —— kkFileView.

項目介紹

kkFileView 是一個基於 SpringBoot 實現文檔線上預覽的開源項目,基本支持主流辦公文檔(WordPPTExcelPdf 等)的線上預覽。

項目特性:

  • 基於 SpringBoot 實現,開箱即用
  • 提供豐富的 Restful 介面服務
  • 支持 http/https/ftp/文件流等多種預覽源
  • 統一的預覽服務介面,方便二次開發
  • 支持 Docker 部署

支持多種文件類型,目前已支持:
支持的文件類型

項目地址:

https://github.com/kekingcn/kkFileView

線上體驗:

https://file.kkview.cn/

線上文檔:

https://kkfileview.keking.cn/zh-cn/docs/home.html

功能預覽

文本預覽

文本預覽不僅支持預覽 .txt,而且 .html.js.xml.json.yaml.java.py.cpp 等也是支持的!

預覽 txt

圖片預覽

支持 jpgjpegpnggif 等圖片預覽,並可以放大、縮小、旋轉圖片!

預覽圖片

Pdf 預覽

Pdf 預覽支持兩種格式

圖片模式

預覽 Pdf —— 圖片模式

PDF 格式
預覽 Pdf —— PDF 模式

Excel 預覽

預覽 Excel

Word 預覽

Word 預覽預覽有兩種模式:

  • 每頁 Word 轉為圖片預覽:Word 文件大,前臺載入整個 PPT 過慢
  • 整個 Word 文檔轉成 PPT,再預覽 PPT:內網訪問,載入 PPT

預覽 Word —— 圖片模式

預覽 Word —— PDF 模式

PPT 預覽

預覽 PPT

多媒體預覽

理論上支持所有的視頻、音頻文件,預設開啟的類型:mp3wavmp4flv,可通過配置文件指定多媒體類型

預覽視頻

壓縮包預覽

支持 ziprarjartargzip 等壓縮包。

可點擊壓縮包中的文件名,直接預覽文件!

預覽壓縮包

安裝使用

環境準備

  • Java: 1.8+
  • LibreOfficeOpenOffice(Windows 下已內置,CentOSUbuntu 下會自動下載安裝,MacOS 下需要自行安裝)

Docker 安裝

拉取鏡像:

docker pull keking/kkfileview:4.1.0

啟動運行:

docker run -it -p 8012:8012 keking/kkfileview:4.1.0

成功啟動後,訪問容器 8012http://127.0.0.1:8012.

或者使用 nginx 進行反向代理:

 server {
    listen 80;
    server_name chencoding.top; 

    location / {
        proxy_pass http://localhost:8012;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

nginx 配置成功後,瀏覽器訪問:http://ip:埠 或者 http://功能變數名稱:埠

最後

推薦的開源項目已經收錄到 GitHub 項目,歡迎 Star

https://github.com/chenyl8848/great-open-source-project

或者訪問網站,進行線上瀏覽:

https://chencoding.top:8090/#/

大家的點贊、收藏和評論都是對作者的支持,如文章對你有幫助還請點贊轉發支持下,謝謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背景 公司產品部收到了一些重要客戶的需求,他們希望能夠依賴獨立的資料庫存儲來支持他們的業務數據。與此同時,仍有許多中小客戶,可以繼續使用公共庫以滿足其需求。技術實現方面,此前持久層框架使用的Mybatis-plus,部分業務場景使用到了Sharding-JDBC用於分表,另外,我們的資料庫版本控制工 ...
  • 近年來,車輛保險成為廣大車主必須購買的一項重要保障。然而,如何查詢車輛保險狀態及保單信息卻是許多車主面臨的難題。隨著技術的不斷發展,API的出現為我們提供了一條便捷的解決之路。本文介紹的《車輛保險查詢API——查詢車輛保險狀態及保單信息》便是一款實用的API工具。 一、API的介紹 挖數據平臺車輛保 ...
  • hello,大家好!新手小白踏入 Python 的大門有點像冒險,但別擔心,我已經整理了一個超實用的入門指南,幫你規避學習過程中的十大雷區。這裡有關於 Python 的錯誤你應該註意的建議,一起來看看吧! 1. 拼寫錯誤 小心 prin 和 print 的奇妙之旅! # 錯誤示例 prin("Hel ...
  • 通俗解釋:單例模式 > 單:唯一 > > 例:實例 > > 單例設計模式,即某個類在整個系統中只能有一個實例對象可被獲取和使用的代碼模式 > > 例如:代表JVM運行環境的Runtime類 ...
  • 接上一隨筆,這次學習針對圖像數據的訪問(Numpy.array) 在OpenCV中,使用 imread() 方法可以訪問圖像,其返回值是一個數組,而根據傳入的不同圖像,將會返回不同維度的數組。 針對返回的圖像數據,即數組,我們是可以進行操作的: 1 import cv2 2 3 # MyPic.pn ...
  • 在開發過程中,如果需要在本地調用openAI介面進行開發調試,一般主要是通過以下兩種方式:直連和代理轉發。歡迎私信交流。 1. 直連 1.簡單粗暴,懂的都懂 2. 代理轉發 代理轉發又有兩種類型,使用第三方代理和自建代理兩種,下麵將分別舉例說明 2.1. 第三方AI網關 1.註冊Cloudflare ...
  • 在平時的開發過程中,整數越界是一個容易被忽視的問題,關註潛在的整數越界問題可使我們編寫的代碼更加健壯,規避因整數越界導致的 bug。 ...
  • 對PDF頁面的增刪通常需要藉助專門的工具,而這些工具一般需要付費才能使用。那麼我們可以通過Java代碼免費實現這一功能嗎?答案是肯定的。這篇文章就教大家如何使用一個免費的國產Java庫來刪除PDF中的指定頁面或者刪除PDF中的空白頁。 使用Java快速刪除PDF中的指定頁面 1. 首先,我們需要先將 ...
一周排行
    -Advertisement-
    Play Games
  • 當使用Autofac處理一個介面有多個實現的情況時,通常會使用鍵(key)進行區分或者通過IIndex索引註入,也可以通過IEnumerable集合獲取所有實例,以下是一個具體的例子,演示如何在Autofac中註冊多個實現,並通過構造函數註入獲取指定實現。 首先,確保你已經安裝了Autofac Nu ...
  • 本篇將分享Prometheus+Grafana的監控平臺搭建,並監控之前文章所搭建的主機&服務,分享日常使用的一些使用經驗本篇將配置常用服務的監控與面板配置:包括 MySQL,MongoDB,CLickHouse,Redis,RabbitMQ,Linux,Windows,Nginx,站點訪問監控,已... ...
  • 使用Aspirate可以將Aspire程式部署到Kubernetes 集群 工具安裝 dotnet tool install -g aspirate --prerelease 註意:Aspirate 正在開發中,該軟體包將作為預覽版進行版本控制,--prelease 選項將獲得最新的預覽版。 容器註 ...
  • 前言 本文要說的這種開發模式,這種模式並不是只有blazor支持,js中有一樣的方案next.js nuxt.js;blazor還有很多其它內容,本文近關註漸進式開發模式。 是的,前後端是主流,不過以下情況也許前後端分離並不是最好的選擇: 小公司,人員不多,利潤不高,創業階段能省則省 個人開發者,接 ...
  • 在.NET中,Microsoft.Extensions.Logging是一個靈活的日誌庫,它允許你將日誌信息記錄到各種不同的目標,包括資料庫。在這個示例中,我將詳細介紹如何使用Microsoft.Extensions.Logging將日誌保存到MySQL資料庫。我們將使用Entity Framewo ...
  • chatgpt介面開發筆記3: 語音識別介面 1.文本轉語音 1、瞭解介面參數 介面地址: POST https://api.openai.com/v1/audio/speech 下麵是介面文檔描述內容: 參數: { "model": "tts-1", "input": "你好,我是饒坤,我是ter ...
  • 前面兩篇文章主要是介紹瞭如何解決高併發情況下資源爭奪的問題。但是現實的應用場景中除了要解決資源爭奪問題,高併發的情況還需要解決更多問題,比如快速處理業務數據等, 本篇文章簡要羅列一下與之相關的更多技術細節。 1、非同步編程:使用async和await關鍵字進行非同步編程,這可以避免阻塞線程,提高程式的響 ...
  • 大家好,我是棧長。 Nacos 2.3.0 前幾天正式發佈了,新增了不少實用性的新功能,真是史上最強版本。 Nacos 2.3.0 還真是一個比較重要的大版本,因為它涉及了太多重大更新,今天棧長給大家來解讀下。 Nacos 先掃個盲: Nacos 一個用於構建雲原生應用的動態服務發現、配置管理和服務 ...
  • IDEA的遠程開發功能,可以將本地的編譯、構建、調試、運行等工作都放在遠程伺服器上執行,而本地僅運行客戶端軟體進行常規的開發操作即可,舊版本IDEA目前不支持該功能.,本例使用的是IDEA2023.2.5版本 下麵介紹如何在IDEA中設置遠程連接伺服器開發環境並結合Cpolar內網穿透工具實現無公網 ...
  • 本文解釋為啥會有響應式編程,為什麼它在開發者中不太受歡迎,以及引入 Java 虛擬線程後它可能最終會消失。 命令式風格編程一直深受開發者喜愛,如 if-then-else、while 迴圈、函數和代碼塊等結構使代碼易理解、調試,異常易追蹤。然而,像所有好的東西一樣,通常也有問題。這種編程風格導致線程 ...