更新记录

1.0.0(2026-09-03) 下载此版本

1.0.0(2026-09-01)

  • 首次发布
  • 支持 H5、微信小程序、App-Android 三端文件选择与上传
  • App-Android 端使用原生文件选择器,无需原生插件
  • 支持格式校验、大小限制、多选、上传进度回调

平台兼容性

uni-app(5.25)

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

uni-file-upload

跨平台文件选择与上传工具,支持 H5微信小程序App-Android 三端。

特性

  • 📱 三端统一:一套 API,H5 / 微信小程序 / App-Android 自动适配
  • 📄 格式校验:内置格式白名单,自动过滤不支持的文件
  • 📏 大小限制:支持单文件大小上限配置
  • 🔄 多选支持:支持一次选择多个文件
  • 📊 进度回调:支持上传进度反馈
  • 🚀 原生选择器:App-Android 端使用原生文件选择器,无需原生插件
  • 🎯 取消感知:H5 端自建 <input type=file> 正确感知用户取消操作

安装

通过 uni-app 插件市场导入,或手动将 uni_modules/uni-file-upload 复制到项目根目录。

使用

import { chooseAndUpload } from '@/uni_modules/uni-file-upload/utils/fileUpload'

// 选择单个文件并上传
const result = await chooseAndUpload({
  uploadUrl: 'https://api.example.com/upload',
  formats: 'txt,doc,docx,pdf',
  maxSize: 5, // 5MB
  name: 'file',
  formData: { type: 'avatar' },
  header: { Authorization: 'Bearer xxx' },
  : ({ file, progress }) => {
    console.log('上传进度:', progress + '%')
  },
})

if (result) {
  console.log('上传成功:', result.url)
} else {
  console.log('用户取消')
}

参数说明

参数 类型 必填 默认值 说明
uploadUrl String - 上传接口地址
formats String txt,md,markdown,csv,doc,docx,xls,xlsx,pdf 允许的文件扩展名,逗号分隔
maxSize Number 0(不限制) 单文件大小上限(MB)
name String file 文件字段名
formData Object {} 额外表单字段
header Object {} 额外请求头
responseUrlKey String data.url 从响应取远程 url 的路径
multiple Boolean false 是否多选
onProgress Function - 进度回调 ({ file, progress })

返回值

返回 Promise,成功时:

  • multiple: false{ name, path, size, url, data }null(取消)
  • multiple: trueArray<{ name, path, size, url, data }>null(取消)

平台支持

平台 文件选择 文件上传
H5 ✅ 自建 <input type=file> ✅ fetch + XMLHttpRequest
微信小程序 ✅ uni.chooseFile / wx.chooseMessageFile ✅ uni.uploadFile
App (Android) ✅ 原生文件选择器 (Native.js) ✅ uni.uploadFile
App (iOS) ✅ uni.chooseFile ✅ uni.uploadFile

隐私、权限声明

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

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

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

许可协议

MIT协议

暂无用户评论。