Skip to content

文件路径转附件 (Path to Attachment)

在处理从外部软件(如 QQ、微信、飞书)粘贴的消息记录,或直接引用本地文件时,内容往往包含本地绝对路径。系统提供了一套智能的“路径转附件”机制,能够自动识别这些路径并将其转换为系统可管理的附件。

一、 核心功能

1.1 一键转换 (Input Conversion)

当输入框中包含本地文件路径时,可以通过输入工具栏中的“更多工具”菜单触发转换。

  • 操作路径: 输入框工具栏 -> ... (更多) -> 路径转附件
  • 识别范围:
    • 标准 file:// 协议链接。
    • Windows 绝对路径 (如 C:\Users\Pictures\image.png)。
    • Unix/macOS 绝对路径 (如 /Users/Documents/file.pdf)。
  • 处理流程:
    1. 智能识别: 系统使用正则表达式扫描输入框全文,提取所有合法的本地路径。
    2. 资产化: 调用资产管理器将识别出的文件导入到应用的资产库中(Assetization)。
    3. 占位符替换: 将输入框中的原始路径字符串替换为结构化的附件占位符。

1.2 自动占位符机制

为了实现文本与媒体资源的解耦,系统使用占位符来表示附件在文本中的位置:

  • 正式占位符: 【file::assetId】 —— 当文件已成功导入资产库后使用。
  • 上传中占位符: 【file::uploading:tempId】 —— 当文件正在导入或上传过程中使用。

**自愈机制 (Self-healing)**

系统内置了占位符自愈逻辑。当一个大文件上传完成,其临时 ID 变为真实资产 ID 时,输入框中的 uploading 占位符会自动更新为正式占位符,无需用户手动干预。

二、 渲染映射 (Rendering Mapping)

转换后的占位符在消息发送后,会根据文件类型在聊天界面中进行差异化渲染:

  • 图片/表情包: 直接在消息流中渲染图片预览,支持点击放大。
  • 音频/视频: 渲染为带控制条的播放器。
  • 普通文件: 渲染为包含文件名、大小和图标的文件卡片。

安全资源转换

由于浏览器安全沙箱限制,直接引用 file:// 路径通常无法显示。本系统在渲染阶段会自动将占位符映射到 Tauri 的安全资源 URL (convertFileSrc),确保本地资源在不破坏安全性的前提下正常展示。

三、 进阶用法

3.1 与快捷操作联动

你可以在快捷操作模板中预设包含本地路径的内容。 例如,创建一个“发送常用图片”的快捷操作,内容设置为 C:\Assets\logo.png。点击该快捷操作后,再配合“路径转附件”功能,即可快速发送本地资源。

3.2 清理无效占位符

如果你在输入框中删除了某个附件卡片,但文本中残留了对应的 【file::...】 占位符,可以使用清理工具:

  • 操作: 工具栏 -> ... (更多) -> 清理无效占位符
  • 效果: 系统会自动扫描并移除所有在当前附件列表中找不到对应实体的占位符。

四、 常见问题

Q: 为什么点击转换后提示“转换失败”? A: 请检查路径是否正确,以及应用是否有权限访问该文件。如果文件已被移动或删除,转换将无法进行。

Q: 粘贴带图消息时会自动转换吗? A: 如果你从外部软件复制了带图片的富文本,系统在粘贴时会尝试提取其中的图片并直接作为附件添加。对于纯文本中的路径,建议手动触发一次“路径转附件”以确保渲染效果。

Released under the Apache-2.0 License.