uniapp获取手机本地文件并上传
时间: 2023-08-18 13:08:00 浏览: 171
uniapp实现移动端上传文件功能
在uni-app中,可以使用uni.chooseImage() API选择本地文件,并使用uni.uploadFile() API上传文件。
下面是一个简单的示例代码:
```
<template>
<div>
<button @click="chooseImage">选择图片</button>
<button @click="uploadFile">上传文件</button>
</div>
</template>
<script>
import uni from 'uni';
export default {
data() {
return {
filePath: '',
fileId: '',
formData: {
name: 'test'
}
};
},
methods: {
chooseImage() {
uni.chooseImage({
count: 1,
success: (res) => {
this.filePath = res.tempFilePaths[0];
}
});
},
async uploadFile() {
try {
const [err, res] = await uni.uploadFile({
url: '上传文件地址',
filePath: this.filePath,
name: 'file',
formData: this.formData
});
if (err) {
console.log('上传失败', err);
} else {
console.log('上传成功', res);
// 保存文件ID或其他需要的信息
this.fileId = res.data.id;
}
} catch (e) {
console.log('请求异常', e);
}
}
}
};
</script>
```
在上面的代码中,我们定义了两个按钮,一个用来选择图片,一个用来上传文件。当点击选择图片按钮时,会调用uni.chooseImage() API来选择本地图片文件,并将文件路径保存到data中的filePath中。当点击上传文件按钮时,会调用uni.uploadFile() API来上传文件,并将文件路径、文件名和其他需要的参数一起上传。上传成功后,可以将返回的文件ID或其他需要的信息保存到data中的fileId中,以便后续使用。
需要注意的是,上传地址需要根据实际情况进行修改。如果需要上传其他类型的文件,可以将name参数设置为文件名,并将文件的后缀名添加到文件名中。例如,如果要上传一个名为test.txt的文本文件,可以将name参数设置为test.txt。
阅读全文