uniapp上传图片和视频到OSS

 

1.首先需要拿到formData里面的参数如下所示:

	formData: {
			name: nameStr,
			key: nameStr,
			policy: 'xxxxxxxxx', // 输入你获取的的policy
		OSSAccessKeyId: 'xxxxxxxxxxxx', // 输入你的AccessKeyId
		success_action_status: '200', // 让服务端返回200,不然,默认会返回204
		signature: 'xxxxxxxxxxxxxx'
				
					},

2.无需后台返回使用工具拿到以上参数:

  • 下载应用服务器代码
  • 将文件解压,并打开upload.js文件
  • 修改upload.js中的配置信息。

 

 

  • accessId : 设置你的AccessKeyId。
  • accessKey : 设置你的AessKeySecret。
  • host: 格式为bucketname.endpoint,例如bucket-name.oss-cn-hangzhou.aliyuncs.com。关于Endpoint的介绍,请参见Endpoint访问域名
  • expiration:设置Policy的失效时间,如果超过失效时间,就无法通过此Policy上传文件。

3.进行上传测试

  1. 在浏览器打开index.html文件
    index.html
  2. 单击选择文件,选择指定类型的文件,单击开始上传。

4.获取上传需要的签名(signature)和加密策略(policy)。

按F12开启web调试,在请求中的Form Data中获取signature和policy。
获取signature和policy

5.使用uniapp上传图片

使用chooseImageApi选择本地图片后上传

 

	let tiemr = new Date();
			let address = tiemr.getFullYear() + '' + (tiemr.getMonth() + 1) + '' + tiemr.getDate();
			address = 'image' + '/';
			var imageSrc = this.videoList[0];
			let str = '.mp4';
			let nameStr = address + tiemr.getTime() + str;
			let ossUrl = 'http://wangnode.oss-cn-beijing.aliyuncs.com/';
			console.log(45, nameStr);
			console.log(45, imageSrc);
			console.log(45, str);
			uni.uploadFile({
				url: ossUrl, //输入你的bucketname.endpoint
				filePath: imageSrc,
				fileType: 'mp4',
				name: 'file',
				formData: {
					name: nameStr,
					key: nameStr,
					policy: 'xxx', // 输入你获取的的policy
					OSSAccessKeyId: 'xxx', // 输入你的AccessKeyId
					success_action_status: '200', // 让服务端返回200,不然,默认会返回204
					signature: 'xxxxx'

				},
				success: res => {
					console.log(1121321, res);
					if (res.statusCode == '200') {
						console.log(ossUrl + nameStr);
						//上传到服务器返回的地址
						this.$u.api.videoInfo({
							'vedioUrl': ossUrl + nameStr,
							'ticketId': parseInt(this.operateresultId),
							'ticketType': "operticket",
							'status': s,
							'isNormal': parseInt(this.isNormal)
						}).then(res => {
							console.log(45345, res);
							this.flagB = 1;
							this.updateState()

						})



					} else {
						console.log(res);
					}
				}
			});

 

要将图片上传到腾讯云OSS,你需要进行以下步骤: 1. 在腾讯云中创建一个对象存储桶(Bucket)。 2. 在uniapp中安装并引入腾讯云OSS SDK。 3. 编写上传代码,包括以下步骤: - 获取上传凭证:在腾讯云中创建一个临时的密钥,用于上传图片。 - 创建上传任务:使用SDK提供的uploadObject方法,将图片进行上传。 - 监听上传进度:可以使用SDK提供的progress方法,获取上传进度信息。 这是一个示例代码,可以帮助你更好地理解上传图片到腾讯云OSS的过程: ```javascript import COS from "cos-wx-sdk-v5"; const cos = new COS({ getAuthorization: async function (options, callback) { try { // 获取上传凭证 const res = await uni.request({ url: "上传凭证接口", method: "GET", }); const { credentials } = res.data; callback({ TmpSecretId: credentials.tmpSecretId, TmpSecretKey: credentials.tmpSecretKey, SecurityToken: credentials.sessionToken, StartTime: credentials.startTime, ExpiredTime: credentials.expiredTime, }); } catch (err) { console.log(err); } }, }); export default { methods: { async uploadFile(file, fileName) { try { // 创建上传任务 const res = await new Promise((resolve, reject) => { cos.uploadObject( { Bucket: "你的Bucket名称", Region: "你的Bucket所在地域", Key: fileName, FilePath: file.path, }, function (err, data) { if (err) { reject(err); } else { resolve(data); } } ).on("progress", function (info) { console.log(info.percent * 100 + "%"); }); }); console.log(res); } catch (err) { console.log(err); } }, }, }; ``` 这段代码中,首先引入了腾讯云OSS SDK,并创建了一个COS实例。在上传文件的方法中,首先调用了 `getAuthorization` 方法获取上传凭证,然后使用 `cos.uploadObject` 方法创建上传任务。同时,也可以使用 `on` 方法监听上传进度,以便实时更新上传进度。最后,上传完成后,会返回上传成功的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值