xe-upload上传文件插件

1.xe-upload地址:文件选择、文件上传组件(图片,视频,文件等) - DCloud 插件市场

2.由于开发app要用到上传文件组件,uni.chooseFile在app上不兼容,所以找到了xe-upload,兼容性很强,强烈推荐!!!

说明

不占用页面位置的上传组件;

H5、App、微信小程序中可上传图片,视频和文件;其他端暂时只能上传图片和视频

上传图片通过chooseMediachooseImage实现

上传视频通过chooseMediachooseVideo实现

H5端上传文件通过chooseFile实现

App上传文件通过renderjs实现

微信小程序上传文件通过chooseMessageFile实现

3.使用方法,到插件市场将插件包导入到自己的项目,然后下列方式调用。

复制代码
<!-- 也可以下载示例项目查看使用方法 -->
<template>
    <view>
        <button @click="handleUploadClick">上传</button>
        <xe-upload ref="XeUpload" :options="uploadOptions" @callback="handleUploadCallback"></xe-upload>
    </view>
</template>

<script>
export default {
    data() {
        return {
            uploadOptions: {
                // url: 'http://192.168.31.185:3000/api/upload', // 不传入上传地址则返回本地链接
            },
        };
    },
    methods: {
        handleUploadClick() {
            // 使用默认配置则不需要传入第二个参数
            // type: ['image', 'video', 'file'];
            this.$refs.XeUpload.upload('file', {});
            // this.$refs.XeUpload.upload('image', {
            //  count: 6,
            //  sizeType: ['original', 'compressed'],
            //  sourceType: ['album'],
            // });
        },
        handleUploadCallback(e) {
            // e.type: ['choose', 'success', 'warning']
            // choose 是options没有传入url,返回临时链接时触发
            // success 是上传成功返回对应的数据时触发
            // warning 上传或者选择文件失败触发
            // ......
        },
    },
};
</script>

4.回调绑定callback方法:

回调返回的参数:

复制代码
'callback.type === success' : [
    {
        "size": 176579, // 选择的文件的大小
        "name": "Kafka.pdf", // 选择的文件的名称(小程序端可能会没有)
        "type": "application/pdf",
        "tempFilePath": "_doc/uniapp_temp/Kafka-16988473328760.pdf", // 临时路径
        "fileType": "file", // 文件类型[image, video, file]
        "response": {
            "result": {
                "fileName": "Kafka.pdf",
                "filePath": `http://localhost:3000/upload/e51d814b649122fc64892d0bc6383d07.pdf`,
            },
            "success": true,
        }, // 上传返回的信息
    }
]

'callback.type === choose' : [
    {
        "size": 176579, // 选择的文件的大小
        "name": "Kafka.pdf", // 选择的文件的名称(小程序端可能会没有)
        "type": "application/pdf",
        "tempFilePath": "_doc/uniapp_temp/Kafka-16988473328760.pdf", // 文件临时路径
        "fileType": "file", // 文件类型[image, video, file]
    }
]

5.注意事项

1、options入参中如果url为空,则choose回调的data列表中只有选择文件能得到的信息和临时路径,临时路径可用于自定义上传方法;传入url选择文件后会自动上传到服务器,此时choose回调不会触发,而是执行success回调,success回调的data列表会包括选择文件能得到的信息
2、当uni.chooseMedia可用时,会优先使用uni.chooseMedia
3、具体使用可下载示例项目运行查看完整示例
相关推荐
计算机魔术师5 分钟前
新兴多智能体系统的模式与问题
前端
用户0595401744643 分钟前
AI Agent 上下文污染踩坑实录:用 pytest + Redis 揪出 3 类记忆串号 bug,排查 6 小时
前端·css
满栀5851 小时前
状态管理:Redux、Vuex、Pinia 核心区别
前端·javascript·typescript
一拳不是超人1 小时前
DeepSeek Harness 为什么敢说"一切皆插件"?拆透 Cordis 引擎的五大核心机制
前端·人工智能·agent
IT_陈寒2 小时前
Python的GIL让我多写了500行代码
前端·人工智能·后端
风骏时光牛马2 小时前
AI智能体能力调度微服务
前端
Eloudy3 小时前
ReAct 原理简介
前端·javascript·人工智能·react.js·agent·gpu
ZJU_统一阿萨姆4 小时前
【DSH】如何将 DeepSeek Harness 嵌入生产环境?万字解构 DeepSeek Agent Harness 的运行机制与安全边界
前端·javascript·安全
用户921080262864 小时前
4. 前端地图大量点位实时更新优化:后端推增量,前端做 diff
前端
SoaringHeart5 小时前
Flutter最佳实践:Web项目中文字体首次加载乱码问题解决
前端·flutter