uniapp上传图片至oss
时间: 2023-08-18 07:07:38 浏览: 57
在 UniApp 中实现将图片上传至 OSS(对象存储服务)的功能,你可以使用uni-app插件`uni.uploadFile`来实现。
首先,你需要将 OSS 的配置信息设置好,包括 `accessKeyId`、`accessKeySecret`、`bucket`、`region` 等信息。你可以将这些信息保存在配置文件中或者通过接口获取。
然后,在页面中添加一个按钮,用于触发选择图片和上传功能:
```html
<template>
<view>
<button @click="chooseAndUpload">选择图片并上传</button>
</view>
</template>
```
接下来,在页面的对应的 Vue 实例中,定义 `chooseAndUpload` 方法来触发选择图片和上传:
```javascript
<script>
export default {
methods: {
chooseAndUpload() {
uni.chooseImage({
count: 1,
success: (res) => {
const tempFilePaths = res.tempFilePaths
this.uploadImage(tempFilePaths[0])
},
})
},
uploadImage(filePath) {
uni.uploadFile({
url: 'https://your-oss-endpoint', // 替换为你的 OSS 上传地址
filePath,
name: 'file',
formData: {
key: 'your-oss-key', // 替换为你的 OSS 对象存储路径和文件名
policy: 'your-oss-policy', // 替换为你的 OSS 上传策略
OSSAccessKeyId: 'your-access-key-id', // 替换为你的 OSS AccessKeyId
signature: 'your-oss-signature', // 替换为你的 OSS 签名
success_action_status: '200', // 上传成功的状态码
},
success: (res) => {
console.log(res.data) // 上传成功后的响应数据
},
})
},
},
}
</script>
```
在 `chooseAndUpload` 方法中,我们使用 `uni.chooseImage` 方法来选择一张图片,然后将选中的图片路径传递给 `uploadImage` 方法进行上传。在 `uploadImage` 方法中,我们使用 `uni.uploadFile` 方法来实现图片上传功能。
注意替换 `https://your-oss-endpoint` 为你的 OSS 上传地址,并填充相应的 OSS 配置信息。
这样,当点击页面中的按钮后,就会触发选择图片并上传至 OSS 的功能。