更新记录

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 调用)

方法 说明
onPick() 主动触发文件选择

上传响应格式

组件期望服务端返回 JSON 格式:

{
  "success": true,
  "message": "上传成功",
  "data": { "url": "..." }
}

successtrue 时视为上传成功,否则视为失败,message 会作为提示文案。

依赖

零外部依赖,仅使用 uni-app 内置 API(uni.uploadFileuni.chooseImageuni.showActionSheet)。

隐私、权限声明

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

Android:READ_EXTERNAL_STORAGE(读取设备存储中的文件)

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

插件不采集任何数据,用户上传的文件直接发送到用户指定的 uploadUrl 地址

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

许可协议

MIT协议

暂无用户评论。