更新记录
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: true → Array<{ 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 |