kkFileView——全能的在线文件预览解决方案

2024-05-28 08:44

本文主要是介绍kkFileView——全能的在线文件预览解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

在数字化办公日益普及的今天,文件的在线预览成为了一个不可或缺的功能。无论是个人还是企业,都希望能够在浏览器中直接打开并浏览各种格式的文档。今天,我们将探索一款国产开源免费的在线文件文档预览软件——kkFileView。

一、kkFileView简介

kkFileView是一个基于Spring Boot框架构建的文件文档在线预览解决方案,它易于上手和部署,支持包括但不限于doc、docx、xls、xlsx、ppt、pptx、pdf、txt、zip、rar、图片、视频、音频等主流办公文档的在线预览。

  1. 官方文档地址:
    https://kkfileview.keking.cn/zh-cn/docs/home.html

  2. 项目特性
    kkFileView具有以下显著特性:

  • 易部署性:使用Spring Boot开发,使得预览服务的搭建部署非常简便。
  • 跨平台服务:通过REST接口提供服务,支持Java、PHP、Python、Go等多种开发语言,应用接入简单方便。
  • 多种预览源支持:支持普通HTTP/HTTPS文件下载URL、FTP下载URL等多种预览源。
  • 发行包丰富:提供ZIP、TAR.GZ发行包,一键启动脚本和丰富的配置项,方便部署使用。
  • 容器化支持:提供Docker镜像发行包,方便在容器环境部署。
  • 二次开发友好:抽象预览服务接口,方便二次开发,方便添加其他类型文件预览支持。
  1. 支持的文件类型
    kkFileView支持的文件类型非常广泛,包括但不限于:
  • Office办公文档:doc, docx, xls, xlsx, ppt, pptx等。
  • 图像文件:jpg, jpeg, png, gif等。
  • PDF文档。
  • 压缩包:zip, rar, jar等。
  • 音视频格式:mp3, wav, mp4, flv等。

二、安装与部署

1. 环境要求

  • Java: 1.8+
  • LibreOffice或OpenOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)

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). Docker容器环境环境运行

  • 拉取镜像
    网络环境方便访问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

在这里插入图片描述

  • 浏览器访问 http://127.0.0.1:8012 即可看到项目演示用首页
    在这里插入图片描述

三、 项目接入使用

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

  • 3.x.x 及以上版本
<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)));
  • 2.x.x 及以下版本
var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(previewUrl));

这篇关于kkFileView——全能的在线文件预览解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1010084

相关文章

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("