uniapp小程序多图上传
时间: 2023-08-01 13:12:31 浏览: 184
在uni-app小程序中,可以使用uni.uploadFile()方法来实现多图上传。以下是一个示例:
```vue
<template>
<div>
<input type="file" ref="fileInput" multiple @change="handleInputChange">
<button @click="handleUpload">上传</button>
</div>
</template>
<script>
export default {
data() {
return {
files: []
}
},
methods: {
handleInputChange(event) {
const files = event.target.files
for (let i = 0; i < files.length; i++) {
this.files.push(files[i])
}
},
handleUpload() {
const uploadTasks = []
for (let i = 0; i < this.files.length; i++) {
const file = this.files[i]
const task = uni.uploadFile({
url: 'https://example.com/upload',
filePath: file.path,
name: 'file',
success: (res) => {
console.log(res)
},
fail: (err) => {
console.error(err)
}
})
uploadTasks.push(task)
}
Promise.all(uploadTasks)
.then(() => {
console.log('All files uploaded!')
})
.catch((err) => {
console.error(err)
})
}
}
}
</script>
```
在这里,我们定义了一个包含一个文件输入框和一个上传按钮的组件。当用户选择多个文件后,文件将被存储在`this.files`数组中。当用户点击上传按钮时,我们将循环遍历`this.files`数组,并使用`uni.uploadFile()`方法来上传每个文件。在这里,我们使用了`Promise.all()`方法来等待所有上传任务完成后,打印“所有文件上传完成”的消息。
需要注意的是,如果在小程序端上传文件的话,需要在`app.vue`中的`onLaunch()`函数中配置`uniCloud.init()`,并在后台配置上传文件的存储路径和权限。
以上是一个简单的uni-app小程序多图上传的示例,希望对您有所帮助。
阅读全文