微信小程序文件直接上传阿里云OSS

第一步 配置Bucket跨域访问

第二步 微信小程序配置域名白名单

以上两步,请参考阿里云官网,如何在微信小程序环境下将文件上传到OSS_对象存储 OSS-阿里云https://help.aliyun.com/document_detail/92883.html

安装依赖 wx-oss-upload

npm install wx-oss-upload --save

然后创建自己的上传方法,引用 wx-oss-upload

import OssUpload from 'wx-oss-upload' // 上传插件
import {
	getSts
} from '@/api/system.js' // 后台获取签名方法

/**
 * @description 参数以对象形式传入
 * @param {String} host 存储空间访问域名 必填
 * @param {String} bucketType 桶存储类型
 * @param {String} folder 文件存放位置路径,例如 /xx/xx/
 * @param {String} filePath 本地上传文件路径 必填
 * @param {String} fileName 本地上传文件名称
 */
export async function uploadFile(data) {

	const params = await getSts(data.bucketType)

	const {
		accessKeyId,
		accessKeySecret,
		securityToken,
		expiration
	} = params.credential;

	const ossUpload = new OssUpload({
		accessKeyId,
		accessKeySecret,
		expirationTime: expiration 
	})

	return await ossUpload.uploadFile({
		host: data.host,
		folder: data.folder,
		filePath: data.filePath,
		fileName: data.fileName,
		securityToken
	})
}

 然后在选取文件后,调用自定义上传方法即可,此处采用uniapp API做展示,原生微信小程序也可使用

				uni.chooseImage({
					count: 1,
					sizeType: ['compressed'],
					sourceType: ['camera']
				}).then(async ([err, res]) => {
					if (res) {
						uni.showLoading({
							mask: true,
							title: '打卡上传中...'
						})
						uploadFile({
							host: '', // 阿里云地址
							folder: '', // 阿里云存放文件夹
							filePath: res.tempFilePaths[0],
						}).then(res => {
							console.log(res); // 输出结果 { url: 'xxx' }
						})
					}
				})

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值