更新记录

1.2.0(2021-02-02) 下载此版本

添加上传任务对象

1.1.1(2021-02-02) 下载此版本

兼容原生微信小程序

1.1.0(2021-02-02) 下载此版本

performance optimizing

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
× × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

xp-multipart

一、概述

  • uniapp官方提供的uni.uploadFile或 微信官方wx.uploadFile 一次只能上传一个图片,xp-multipart既可以用来发送普通的表单数据,也可以同时上传多个图片文件

  • 微信小程序封装的,其余平台暂未考虑;app和h5直接使用uni.uploadFile即可

  • 底层依然使用wx.request 进行封装,因此小程序管理后台设置了request的合法域名可以正常使用

二、在项目中使用

  • url 接口地址
  • fields 表单数据
  • files 文件图片
  • header 请求头(函数中content-type为multipart/form-data,不可也无需再设置
  • success (必传参数)
  • fail
  • complete

import {
    multipartUpload as upload,
    uploadTask as task //上传任务对象,同requestTask
} from "@/utils/xp-multipart.js"

//1、回调函数
uni.chooseImage({
    count: 2,//选择两张图片
    success(res) {
        upload({
            url: "http://localhost:6891/upload", //后端接口
            fields: {
                username: "张三",
                age: 24
            },
            files: {
                avatar: res.tempFilePaths[0],
                img: res.tempFilePaths[1]
            },
            success(res) {
                console.log(res)
            },
            fail(err) {
                console.log(err)
            },
            complete(ret) {
                console.log(ret)
            }
        })
    }
})

task.abort();//取消上传

附上后端接口示例(这里用的是spring-boot)

    @PostMapping("/upload")
    public String upload(@RequestParam("username") String name,
                         @RequestParam("age") Integer age,
                         MultipartFile avatar,
                         MultipartFile img) {
        System.out.println(name);
        System.out.println(age);
        System.out.println(avatar.getOriginalFilename());
        System.out.println(img.getOriginalFilename());
        return "success";
    }

喜欢的话给个star吧!

隐私、权限声明

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

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

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

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问