# FilePreviewOnline **Repository Path**: camphora335/FilePreviewOnline ## Basic Information - **Project Name**: FilePreviewOnline - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-28 - **Last Updated**: 2025-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FilePreviewOnline ## 项目简介 FilePreviewOnline 是一个基于 Spring Boot 的多格式文件在线预览服务,支持 EPUB、Markdown、RAR、7z、ZIP 等多种常见文件格式的内容在线解析与展示,适用于文档管理、知识库、网盘等场景。 ## 功能特点 - **EPUB 文件预览**:解析 EPUB 电子书内容,支持章节目录、文本、图片等展示。 - **Markdown 文件预览**:将 Markdown 文件渲染为 HTML,支持常用语法和代码高亮。 - **RAR/7z/ZIP 文件预览**:无需解压即可在线浏览压缩包内的文件列表。 - **文件上传与管理**:支持本地文件上传,自动识别并生成预览。 - **RESTful API**:提供统一、易用的 API 接口,便于集成。 ## 技术栈说明 - **Spring Boot**:项目主框架,负责 REST API、依赖管理与服务启动。 - **epublib**:EPUB 文件解析,提取电子书内容与元数据。 - **CommonMark**:Markdown 解析与 HTML 渲染。 - **sevenzipjbinding**:支持 7z、RAR、ZIP 等压缩文件的读取与内容提取。 - **junrar**:辅助处理部分 RAR 格式。 - **Thymeleaf**:部分页面渲染。 - **前端**:原生 HTML/JS,支持文件上传与预览交互。 ## 快速开始 1. 安装 Java 8+ 和 Maven 2. 克隆本项目:`git clone ...` 3. 安装依赖:`mvn clean install` 4. 启动服务:`mvn spring-boot:run` 5. 访问 `http://localhost:8080/` 或调用 API 进行文件预览 ## API 说明 ### 1. EPUB 文件预览 - **接口**:`GET /api/epub/preview` - **参数**:`filePath`(必填,EPUB 文件绝对路径或上传后路径) - **返回**:HTML 格式的电子书内容 - **示例**:`/api/epub/preview?filePath=/path/to/book.epub` ### 2. Markdown 文件预览 - **接口**:`GET /api/markdown/preview` - **参数**:`filePath`(必填,Markdown 文件路径) - **返回**:HTML 格式的渲染内容 - **示例**:`/api/markdown/preview?filePath=/path/to/file.md` ### 3. RAR 文件预览 - **接口**:`GET /api/rar/preview` - **参数**:`filePath`(必填,RAR 文件路径) - **返回**:HTML 格式的文件列表 - **示例**:`/api/rar/preview?filePath=/path/to/file.rar` ### 4. 7z 文件预览 - **接口**:`GET /api/7z/preview` - **参数**:`filePath`(必填,7z 文件路径) - **返回**:HTML 格式的文件列表 - **示例**:`/api/7z/preview?filePath=/path/to/file.7z` ### 5. ZIP 文件预览 - **接口**:`GET /api/zip/preview` - **参数**:`filePath`(必填,ZIP 文件路径) - **返回**:HTML 格式的文件列表 - **示例**:`/api/zip/preview?filePath=/path/to/file.zip` ### 6. 文件上传 - **接口**:`POST /api/upload` - **参数**:表单文件(multipart/form-data) - **返回**:上传结果及可预览链接 ## 主要依赖 - Spring Boot 2.x - epublib(EPUB 解析) - CommonMark(Markdown 渲染) - sevenzipjbinding(7z、RAR、ZIP 解析) - junrar(辅助 RAR 解析) - Thymeleaf(页面渲染) - jsoup(HTML 解析与清洗) ### 依赖库说明 - **epublib**:用于解析和读取EPUB电子书格式,支持提取章节、文本、图片等内容。 - **CommonMark**:高性能的Markdown解析与渲染库,将Markdown文本转换为HTML。 - **sevenzipjbinding**:Java平台下的7z、RAR、ZIP等压缩文件解析库,支持包括RAR5在内的多种压缩格式。 - **junrar**:辅助处理部分RAR格式文件的解压与内容读取。 - **Thymeleaf**:现代Java服务端模板引擎,用于动态生成和渲染HTML页面。 - **jsoup**:用于解析、清洗和操作HTML内容,常用于处理EPUB等文件中的HTML片段。 ## 部署与运行 1. 确保本地已安装 Java 8+ 和 Maven 2. `git clone` 本项目源码 3. 进入项目目录,执行 `mvn clean install` 4. 运行 `mvn spring-boot:run` 启动服务 5. 默认端口为 8080,可通过 `application.properties` 配置 ## 项目目录结构 ```plaintext FilePreviewOnline/ ├── README.md # 项目说明文档 ├── epublib-core-3.1.jar # EPUB解析依赖库 ├── pom.xml # Maven构建配置文件 ├── src/ │ └── main/ │ ├── java/ │ │ └── com/example/filepreview/ │ │ ├── FilePreviewApplication.java # Spring Boot启动类 │ │ ├── controller/ # 控制器层,处理各类文件的上传与预览请求 │ │ │ ├── EpubPreviewController.java │ │ │ ├── FileUploadController.java │ │ │ ├── MarkdownPreviewController.java │ │ │ ├── RarPreviewController.java │ │ │ ├── SevenZPreviewController.java │ │ │ └── ZipPreviewController.java │ │ ├── entity/ # 实体类,定义数据结构 │ │ │ └── FileRecord.java │ │ └── mapper/ # 数据访问层 │ │ └── FileRecordMapper.java │ └── resources/ │ ├── application.properties # 配置文件 │ └── static/ # 前端静态资源 │ ├── index.html │ └── preview.html ├── uploads/ # 用户上传文件及临时目录 │ ├── ... # 各类上传文件(epub、zip、7z等) │ └── temp/ # 上传临时文件夹 └── target/ # Maven编译输出目录 ├── ... # 编译生成的class、jar等 ```