更新记录

0.1.0(2026-08-23)

  • 初始化发布
  • 支持 Android content:// URI 解析、文件复制到缓存目录和上传准备
  • 提供 chooseFiles / normalizeFile / prepareUpload

平台兼容性

simple-file-bridge Android 文件上传桥接器

一个面向 uni-app App 的轻量桥接插件,重点解决 Android content:// 文件 URI 在预览、读取和上传时的兼容问题。

插件名称包含常用搜索词:文件选择、文件选择器、Android 文件选择、文件上传、content URI、uni.uploadFile、文件路径转换

作者:Sanyi
联系方式:hiiwayne@163.com

解决什么问题

  • 调起 Android 系统文件选择器,不申请存储权限。
  • 支持单选、多选、MIME 类型过滤。
  • 统一返回文件名、大小、MIME、扩展名、URI 和可上传路径。
  • 自动处理 content://file:// 和普通绝对路径。
  • 可将不可直接上传的 URI 复制到 App 缓存目录,返回稳定的 file:// 路径。
  • 支持持久化 URI 读取权限,适合稍后上传或打开文件。

平台

平台 支持
Android App 支持
iOS App 计划支持
uni-app x Android 兼容 UTS API 结构,建议使用 HBuilderX 4.41+ 验证
H5 / 小程序 不提供原生实现

快速使用

import { chooseFiles, prepareUpload } from '@/uni_modules/simple-file-bridge'

chooseFiles({
  multiple: true,
  count: 9,
  mimeTypes: ['application/pdf', 'image/*'],
  success: (res) => {
    console.log(res.files)
  },
  fail: (err) => {
    console.error(err)
  }
})

// 对选中的 content:// 文件做上传准备
prepareUpload({
  file: res.files[0],
  success: (res) => {
    uni.uploadFile({
      url: 'https://example.com/upload',
      filePath: res.path,
      name: 'file'
    })
  }
})

API

chooseFiles(options)

参数 类型 默认值 说明
multiple boolean false 是否允许多选
count number 1 最大选择数量,单选时自动按 1 处理
mimeTypes string[] ['*/*'] MIME 类型过滤
persist boolean true 是否申请持久化 URI 读取权限
copyToApp boolean false 是否立即复制到 App 缓存目录
success function - 成功回调
fail function - 失败回调
complete function - 完成回调

normalizeFile(options)

把已有的 content://file:// 或绝对路径解析成统一文件信息。

normalizeFile({
  uri: 'content://media/external/file/123',
  success: ({ file }) => console.log(file)
})

prepareUpload(options)

确保文件可以交给 uni.uploadFile。对于无法直接映射成普通路径的 URI,会复制到 App 缓存目录。

prepareUpload({
  file,
  success: ({ path, file }) => {}
})

返回值

{
  name: '合同.pdf',
  uri: 'content://...',
  path: 'file:///data/user/0/...',
  mime: 'application/pdf',
  extension: 'pdf',
  size: 238122,
  lastModified: 0,
  persisted: true,
  copied: false
}

错误码

错误码 含义
9010001 当前平台不支持
9010002 当前已有文件选择任务
9010003 用户取消选择
9010004 文件 URI 无效
9010005 无法读取文件信息
9010006 文件复制失败

隐私与权限

插件只在用户主动点击选择文件后访问用户选择的 URI,不扫描设备文件,不上传数据,不包含广告。Android 使用系统 Storage Access Framework,不主动申请读写外部存储权限。

目录

uni_modules/simple-file-bridge/  插件源码
pages/index/                  Demo 页面

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。