菜单

文件处理

相关源文件

本文档解释了在 Stirling-PDF 中如何上传、处理和下载文件。它涵盖了文件处理工作流程中涉及的客户端和服务器端组件,从初始选择到最终下载。有关具体 PDF 操作的信息,请参阅 PDF 处理

文件处理流程概述

来源

文件上传组件

Stirling-PDF 中的文件上传系统为用户提供了灵活的界面,可以通过各种方法选择文件。

文件选择组件

Stirling-PDF 实现了一个自定义文件选择组件,支持

  • 传统文件浏览
  • 拖放功能
  • Google 云端硬盘集成(高级功能)
  • 自动处理 ZIP 文件和加密 PDF

文件选择器作为可重用的 Thymeleaf 片段实现于 common.html,并可用于不同页面,提供可定制的选项

来源

文件选择器片段

文件选择器是一个可重用组件,具有以下关键属性

属性描述
名称文件输入的唯一标识符
accept要接受的 MIME 类型(例如,application/pdf, image/*
multipleInputsForSingleRequest是否应在单个请求中发送多个文件
disableMultipleFiles是否允许选择多个文件
remoteCall是进行远程 API 调用还是在本地处理
showUploads是否显示上传文件列表
notRequired文件选择是否为可选

使用示例

来源

文件选择与验证

当文件被选中时,系统会执行多项客户端操作

  1. 大小验证: 检查文件是否超出配置的上传限制
  2. ZIP 文件解压: 根据需要提取和处理 ZIP 文件的内容
  3. PDF 加密检测: 检查 PDF 是否加密,如果需要则提示输入密码
  4. 文件显示: 显示带有缩略图、名称和大小的已选文件

来源

文件处理与提交

表单提交流程

当表单提交时,downloader.js 脚本处理该过程

来源

单文件与多文件处理

Stirling-PDF 有两种处理多个文件的方法

  1. 单个请求 (MultipleInputsForSingleRequest=true): 所有文件在单个请求中发送,一起处理,并作为单个结果返回
  2. 多个请求: 每个文件单独处理,结果可以选择性地打包成 ZIP 文件

此行为由以下因素控制

  • 文件选择器中的 multipleInputsForSingleRequest 标志
  • 用户在 UI 中的选择
  • 正在执行的具体操作

来源

服务器端文件处理

当文件到达服务器时,由控制器根据请求的操作对其进行处理。

API 控制器结构

来源

示例处理流程:PDF 转图像

来源

文件下载处理

服务器端处理后,文件会连同相应的下载处理头信息一起返回给客户端。

下载流程

下载系统支持三种模式

  1. 直接下载(默认)
  2. 在当前窗口中打开
  3. 在新窗口中打开

来源

特殊情况:多文件下载

当单独处理多个文件时,系统可以

  1. 单独下载每个文件
  2. 如果文件数量超过阈值,则将结果合并为 ZIP 文件

这由 zipThreshold 设置控制(默认为 4 个文件)。

来源

特殊文件处理情况

Google 云端硬盘集成

Stirling-PDF 高级版包含 Google 云端硬盘集成,允许用户直接从其 Google 云端硬盘帐户导入文件。

来源

加密 PDF 处理

当检测到加密 PDF 时,Stirling-PDF 提供无缝解密

  1. 客户端代码通过 PDF.js 检测加密
  2. 向用户显示密码提示
  3. 密码被发送到 /api/v1/security/remove-password 端点
  4. 解密后的 PDF 返回并用于进一步处理

来源

ZIP 文件解压

当上传 ZIP 文件时,系统会自动

  1. 从归档中提取所有文件
  2. 根据接受的 MIME 类型进行筛选
  3. 将提取的文件添加到文件列表以进行处理

这允许用户方便地将多个文件上传到一个 ZIP 归档中。

来源

文件处理错误管理

系统包含针对各种故障场景的强大错误处理

  1. 会话过期: 检测到并提示用户刷新
  2. API 错误: 在错误横幅中显示详细信息
  3. 文件大小限制: 在客户端进行验证并提供清晰的用户通知
  4. 加密错误: 通过适当的用户密码提示进行处理

来源

与 PDF 操作集成

文件处理系统与 PDF 处理工具无缝集成,提供连贯的用户体验

各种 PDF 操作有不同的文件处理要求

操作输入文件输出类型特殊处理
合并 PDF多个 PDF单个 PDF文件排序 UI,在 merge.js
拆分 PDF单个 PDF多个 PDF (ZIP)创建多个输出文件
PDF 转图像单个 PDF单张/多张图像可选 ZIP 打包
图像转 PDF多张图像单个 PDF图像排序和处理
重新排列页面单个 PDF单个 PDF页面排序逻辑

来源