更新记录

1.0(2025-09-19) 下载此版本

1.0当前已完成安app、微信小程序功能调试,可以正常运行


平台兼容性

uni-app(3.6.9)

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

BeiFileLoad 文件上传组件操作说明

一、组件介绍

BeiFileLoad 是一个适用于 UniApp 的跨平台文件上传组件,支持微信小程序、H5、安卓 App 等多端,提供文件选择、类型校验、大小限制、上传进度显示及取消上传等功能,可灵活配置上传参数和回调逻辑。

二、组件引入与基础使用

1. 引入组件

在需要使用的页面中引入组件(以 Vue 单文件为例):

<template>
  <view>
    <!-- 引入组件并配置参数 -->
    <BeiFileLoad 
      :fileUrl="uploadUrl" 
      :originalObj="bizParams"
      :allowedTypes="['pdf', 'docx', 'jpg', 'png']"
      :maxSizeMB="10"
      @onUploadSuccess="handleSuccess"
      @onUploadError="handleError"
    />
  </view>
</template>

<script>
// 导入组件
import BeiFileLoad from '@/components/BeiFileLoad.vue';

export default {
  components: {
    BeiFileLoad // 注册组件
  },
  data() {
    return {
      uploadUrl: 'https://your-domain.com/api/upload', // 上传接口地址
      bizParams: { token: 'xxx', module: 'file' } // 业务参数
    };
  },
  methods: {
    handleSuccess(result) {
      console.log('上传成功', result);
    },
    handleError(error) {
      console.error('上传失败', error);
    }
  }
};
</script>

三、核心参数配置(Props)

参数名 类型 说明 默认值
fileUrl String 必填,文件上传接口地址(后端接收文件的 API) -
originalObj Object 必填,上传时携带的业务参数(如令牌、模块标识等) {}
disabled Boolean 是否禁用组件(禁用后无法选择和上传文件) false
allowedTypes Array 允许上传的文件类型(扩展名,如 ['pdf', 'jpg']),空数组表示不限类型 []
maxSizeMB Number 最大文件大小限制(单位:MB) 20

四、操作流程

1. 选择文件

  • 点击「选择本地文件」按钮,组件会根据当前平台(微信小程序 / H5 / 安卓 App)调用对应的文件选择器。
  • 安卓 App 首次使用时会请求存储权限,需用户授权后方可选择文件。
  • 选择成功后,会显示文件名、大小及相关错误提示(如有)。

2. 文件校验

组件会自动进行以下校验:

  • 类型校验:若选择的文件扩展名不在 allowedTypes 中,显示 “不支持的附件类型” 提示。
  • 大小校验:若文件大小超过 maxSizeMB 限制,显示 “附件大小超过限制” 提示。
  • 校验不通过时,「上传附件」按钮会禁用。

3. 上传文件

  • 校验通过后,点击「上传附件」按钮开始上传,按钮会显示 “上传中...” 及加载图标。
  • 上传过程中显示进度条,实时更新上传进度(0-100%)。

4. 取消上传

  • 上传过程中可点击「取消上传」按钮终止上传,组件会重置状态并提示 “已取消上传”。

5. 移除文件

  • 未上传或上传完成后,可点击文件信息后的「移除」按钮清除已选文件,重置选择状态。

五、回调函数(Events)

事件名 说明 回调参数
onFileSelected 选择文件成功后触发 选中的文件信息({name, size, path/uri}
onFileRemoved 移除文件后触发 -
onUploadSuccess 上传成功后触发(后端返回 200 状态码) 后端返回的响应数据
onUploadError 上传失败时触发(包括网络错误、后端异常、文件校验失败等) 错误信息(Error对象)
onUploadCancel 取消上传时触发 -

六、多平台适配说明

  1. 微信小程序

    • 需在小程序后台配置上传域名(fileUrl 域名需加入 “uploadFile 合法域名”)。
    • 支持通过 chooseFile 或 chooseMessageFile 选择文件。
  2. H5

    • 依赖浏览器原生文件选择能力,通过 accept 属性限制文件类型。
  3. 安卓 App

    • 基于 plus 原生 API 实现,支持 Android 10 + 的分区存储权限。
    • Android 13 + 需申请媒体文件访问权限,旧版本需申请外部存储读写权限。

七、常见问题处理

  1. “文件类型不支持”:检查 allowedTypes 配置是否包含该文件扩展名(注意小写)。
  2. “附件过大”:调整 maxSizeMB 参数,或提示用户压缩文件。
  3. 微信小程序 “上传域名未配置”:在微信公众平台配置 fileUrl 对应的域名。
  4. 安卓 “无存储权限”:引导用户在手机设置中开启应用的存储权限。
  5. 上传无响应:检查 fileUrl 是否可访问,后端接口是否正确处理 multipart/form-data 类型请求。

通过以上配置和操作,可快速实现跨平台的文件上传功能,组件会自动处理不同平台的差异和常见异常场景。

隐私、权限声明

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

需要在 manifest.json 里面配置如下安卓权限: 1. 存储访问相关权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 功能:读取外部存储中的文件(用于选择本地文件),是插件选择文件的基础权限。 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 功能:写入外部存储(可能用于临时文件处理、缓存文件等),部分文件操作场景需要。 <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/> 功能:Android 11+(API 30+)中管理所有文件的权限,当需要访问外部存储中 "所有文件"(而非应用私有目录)时需要,适配高版本系统的文件选择功能。 2. 网络相关权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 功能:获取网络状态(如是否联网),插件可通过该权限判断网络环境,避免在无网络时发起上传。 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 功能:获取 WiFi 状态,辅助判断网络环境(如是否在 WiFi 下,可用于优化上传策略)。

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。