1.xe-upload地址:文件选择、文件上传组件(图片,视频,文件等) - DCloud 插件市场
2.由于开发app要用到上传文件组件,uni.chooseFile在app上不兼容,所以找到了xe-upload,兼容性很强,强烈推荐!!!

说明
不占用页面位置的上传组件;
H5、App、微信小程序中可上传图片,视频和文件;其他端暂时只能上传图片和视频
上传图片通过chooseMedia及chooseImage实现
上传视频通过chooseMedia及chooseVideo实现
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.注意事项