更新记录

1.1.15(2026-04-18)

  • 优化 iOS 文件类型前置过滤:accept 到 UTI 的映射由“单值”升级为“多值集合”策略,补充 zip/rar 的兼容 UTI(如 com.pkware.zip-archivepublic.archive),提升系统文件选择器命中率。
  • 优化 iOS accept 解析去重逻辑:新增 appendUti 统一去重追加,避免重复 UTI 造成的过滤冗余。
  • 修复 UTS 编译兼容细节:多处数组累加变量由 const 调整为 let,降低跨端桥接和编译阶段的可变集合处理风险。

1.1.14(2026-04-14)

  • 修复 iOS 云打包编译失败:移除 toPickFilesOptions 中对 Any 的动态属性访问写法(obj.accept / obj.multiple / obj.maxCount / obj.maxSize / obj.filename / obj.success / obj.fail / obj.complete),避免 Swift 侧出现 value of type 'Any' has no member ... 编译错误。
  • 修复 iOS 云打包编译失败:单文件包装链路中对 files[0] 显式收敛为 PickedFile,修复 cannot convert value of type 'Any?' to expected argument type 'PickedFile?'
  • 调整 pickFiles 桥接类型兼容策略:对外参数维持桥接可用性(PickFiles 放宽为 any),并统一多端单文件包装中的 files 回调形参为 Array<any>,降低 byJs 代理层类型不一致导致的崩溃风险。

1.1.3(2026-04-10)

  • 修复 iOS 原生文件选择器主线程调用问题:pickFile/pickFiles 统一通过主线程调度拉起 UIDocumentPickerViewController,避免 Call must be made on main thread 异常。
  • 修复 iOS 单文件选择稳定性问题:调整单文件桥接回调与参数归一化路径,避免运行时强制类型转换导致的闪退。
  • 修复 iOS 多文件选择稳定性问题:优化 didPickDocumentsAt 回调处理,直接构建 PickedFile[] 返回,降低多文件场景崩溃风险。
  • 修复 iOS 编译兼容问题:将控制器遍历与展示逻辑改为强类型 UIViewController,避免 Any 无成员导致的云打包编译失败。
查看更多

平台兼容性

uni-app(4.84)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - -

uni-app x(4.84)

Chrome Safari Android iOS 鸿蒙 微信小程序

lizhao-choose-file

lizhao-choose-file 是纯 UTS 文件选择 API 插件,统一通过 UTS 对外暴露 pickFilespickFile,支持 uni-app 与 uni-app x 多端调用。

支持平台

平台 是否支持 说明
uni-app Vue2/Vue3 可用
uni-app x 多端可用
Android 使用系统文件选择器
iOS 使用系统文件选择器
Harmony 使用系统文件选择器
Web 使用浏览器文件选择能力
微信小程序 使用小程序文件选择能力
支付宝小程序 使用小程序文件选择能力

安装说明

import * as LizhaoChooseFile from '@/uni_modules/lizhao-choose-file'

说明:本插件为 API 插件,不提供 <lizhao-choose-file /> 组件标签。

目录结构说明

uni_modules/
└─ lizhao-choose-file/
   ├─ package.json
   ├─ readme.md
   ├─ changelog.md
   ├─ example/
   └─ utssdk/
      ├─ interface.uts
      ├─ unierror.uts
      ├─ index.uts
      ├─ common/
      │  └─ picker-core.uts
      ├─ app-android/
      │  └─ index.uts
      ├─ app-ios/
      │  └─ index.uts
      ├─ app-harmony/
      │  └─ index.uts
      ├─ web/
      │  └─ index.uts
      ├─ mp-weixin/
      │  └─ index.uts
      └─ mp-alipay/
         └─ index.uts

API 列表

  • pickFiles(options)
  • pickFile(options)

pickFiles(options)

说明 选择多个文件并返回统一文件结构。

支持平台 Android / iOS / Harmony / Web / 微信小程序 / 支付宝小程序

参数

参数 类型 必填 说明 默认值 可选参数
options PickFilesOptions 文件选择参数对象 accept / multiple / maxCount / maxSize / filename / success / fail / complete
options.accept string 文件类型过滤规则 */* .pdf,.docx / image/* / video/* / */*
options.multiple boolean 是否允许多选 false true / false
options.maxCount number 最大可选数量(单选场景固定按 1 处理) 多选默认 9,单选默认 1 大于 0 的整数
options.maxSize number 单文件最大体积(字节) 0 大于等于 0 的数值
options.filename string 返回结果重命名模板,多选自动追加 _1/_2 任意字符串(可含扩展名)
options.success function 选择成功回调
options.fail function 选择失败回调
options.complete function 完成回调(成功返回文件数组,失败返回错误对象)

返回值

字段 类型 说明
name string 文件名
size number 文件大小(字节)
type string MIME 类型
path string 临时文件路径
url string 可用于预览或上传的地址
lastModified number 最近修改时间戳(毫秒)
source string 平台来源标记(如 uts-android
ext string 文件扩展名(不含 .

pickFile(options)

说明 选择单个文件,成功回调返回 PickedFile | null

支持平台 Android / iOS / Harmony / Web / 微信小程序 / 支付宝小程序

参数

参数 类型 必填 说明 默认值 可选参数
options PickFileOptions 单文件选择参数对象 accept / maxSize / filename / success / fail / complete
options.accept string 文件类型过滤规则 */* .pdf,.docx / image/* / video/* / */*
options.maxSize number 单文件最大体积(字节) 0 大于等于 0 的数值
options.filename string 返回结果重命名模板 任意字符串(可含扩展名)
options.success function 选择成功回调
options.fail function 选择失败回调
options.complete function 完成回调(成功返回文件对象,失败返回错误对象)

错误码说明

错误码 含义 说明
9011001 platform unsupported 当前平台不支持
9011002 user cancelled 用户取消选择
9011003 permission denied 文件访问权限不足
9011004 count exceeded 选择数量超过 maxCount
9011005 invalid file type 文件类型不符合 accept 规则
9011006 file size exceeded 文件体积超过 maxSize
9011007 system error 系统异常或底层选择失败

权限说明

平台 是否支持 说明
Android 使用系统文件选择器,通常不需额外存储权限
iOS 使用系统文件选择器,按系统策略处理授权
Harmony 使用系统文件选择器
Web 由浏览器处理文件选择授权
小程序 由小程序运行时处理文件选择授权

自定义基座说明

  • 当前版本未接入三方原生 SDK。
  • 当前版本未新增 Android/iOS 原生依赖与特殊清单配置。
  • 常规使用无需自定义基座。

示例(uni-app)

import * as LizhaoChooseFile from '@/uni_modules/lizhao-choose-file'

LizhaoChooseFile.pickFiles({
  accept: '.pdf,.doc,.docx,image/*',
  multiple: true,
  maxCount: 3,
  maxSize: 10 * 1024 * 1024,
  filename: 'upload-file',
  success(files) {
    console.log('pickFiles success', files)
  },
  fail(err) {
    console.error('pickFiles fail', err)
  }
})

示例(uni-app x)

import * as LizhaoChooseFile from '@/uni_modules/lizhao-choose-file'

LizhaoChooseFile.pickFile({
  accept: '.pdf,.docx',
  maxSize: 5 * 1024 * 1024,
  success(file) {
    console.log('pickFile success', file)
  },
  fail(err) {
    console.error('pickFile fail', err)
  }
})

注意事项

  1. 页面销毁前若仍有文件选择流程,建议在业务侧避免重复触发。
  2. 小程序与 Web 的文件路径通常是临时路径,不保证长期可用。
  3. filename 只改返回结果中的 name/ext,不会修改用户原始文件本体。

隐私、权限声明

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

按平台系统文件选择器规则

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

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

暂无用户评论。