更新记录
1.0.0(2026-07-27)
下载此版本
- 首次发布
- 支持图片/视频/任意文件选择上传
- 支持 Android 原生文件选择器(多选)
- 支持上传进度条显示
- 支持文件格式 & 大小校验
- 支持上传取消
- 支持自定义上传 Header
- 零外部依赖
平台兼容性
uni-app(3.0.0)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
- |
√ |
√ |
√ |
× |
- |
- |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
其他
MOA Uploader - 原生文件上传组件
基于 uni-app 的原生文件上传组件,支持图片/视频/任意文件选择、上传进度条、格式 & 大小校验。
平台兼容
| 平台 |
兼容性 |
| App (vue) |
√ |
| H5 |
√ (部分,文件选择依赖系统能力) |
| 小程序 |
× |
| Android 最低版本 |
4.4+ |
安装
通过 uni_modules 导入,或手动将 nevada-uploader 复制到项目 uni_modules 目录下。
用法
组件安装后自动注册,模板中直接使用 <moa-uploader> 即可:
<template>
<moa-uploader
ref="uploader"
file-type="all"
:max-count="5"
:max-size="50"
upload-url="https://your-api.com/upload"
:upload-header="{ Authorization: 'Bearer xxx' }"
btn-text="+ 上传文件"
:uploaded-count="0"
@upload-start="onStart"
@upload-success="onSuccess"
@upload-fail="onFail"
@upload-complete="onComplete"
/>
</template>
<script>
export default {
methods: {
onStart({ file }) {
console.log('开始上传:', file.name)
},
onSuccess({ file, responseData }) {
console.log('上传成功:', responseData)
},
onFail({ file, error }) {
console.error('上传失败:', error)
},
onComplete({ file }) {
console.log('上传完成:', file.name)
}
}
}
</script>
Props
| 参数 |
类型 |
默认值 |
说明 |
| file-type |
String |
'all' |
文件类型:'image' / 'file' / 'all'(弹菜单) |
| max-count |
Number |
1 |
最大上传数量 |
| max-size |
Number |
50 |
文件大小上限(MB) |
| formats |
String |
'' |
允许的扩展名,逗号分隔,如 'jpg,png,pdf',为空不限制 |
| upload-url |
String |
(必填) |
上传接口地址 |
| upload-header |
Object |
{} |
上传请求的自定义 header |
| btn-text |
String |
'+ 上传文件' |
上传按钮文案 |
| disabled |
Boolean |
false |
是否禁用 |
| uploaded-count |
Number |
0 |
已上传数量(用于控制剩余可传数) |
Events
| 事件 |
参数 |
说明 |
| upload-start |
{ file } |
开始上传 |
| upload-success |
{ file, responseData } |
上传成功 |
| upload-fail |
{ file, error } |
上传失败 |
| upload-complete |
{ file } |
上传完成(无论成功失败) |
方法(通过 ref 调用)
上传响应格式
组件期望服务端返回 JSON 格式:
{
"success": true,
"message": "上传成功",
"data": { "url": "..." }
}
success 为 true 时视为上传成功,否则视为失败,message 会作为提示文案。
依赖
零外部依赖,仅使用 uni-app 内置 API(uni.uploadFile、uni.chooseImage、uni.showActionSheet)。