微信小程序七牛云 图片(文件)上传预览

最近在公司对接了一个文件上传到七牛云的项目

记录一下

sdk 下载

https://codeload.github.com/gpake/qiniu-wxapp-sdk/zip/refs/heads/master

在你页面中引入

import qiniuUploader from '../util/qiniuUploader.js'

这里用到了两个uni-app的方法 

图片查看

uni.previewImage

图片选择

uni.chooseImage

由于本地页面响应速度比服务器反应快所以 创建一个数组 来存放本地图片地址

localImgList

具体实现过程是先获取到公司后台生成的 token  再使用uni-app的api获取到图片地址 本地保存一份图片本地地址 然后调用qiniuUploader.upload 上传图片 吧token 等参数带进去 上传完成后 (我这里是直接拼接地址得到上传后的图片地址)得到地址 。

        //删除图片
        imgDelete(id){
				this.imgList.splice(id, 1)
				this.localImgList.splice(id, 1)
			},
			// 查看图片
			imgPreview(arr,index) {
				uni.previewImage({
					loop: true,
					urls: arr,
					current: index,
				})
			},
			// 图片选择
			async selectImg(){
				// 这里必须同步 不然后面没有token 会导致报错
				await this.qiniuToken()
				let that = this;
				uni.chooseImage({
					count: 9 - this.localImgList.length,
					sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
					sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
					success: function(res) {
						res.tempFilePaths.forEach(item=>{
							that.upimg(item)
							// 本地图片添加到数组
							that.localImgList.push(item)
						})
				}
			})
			},
			// 上传图片
			upimg(img){
				// 得到图片路径
				let path = 'vxCx/' + img.split('//')[1]
				// 交给七牛上传
				qiniuUploader.upload(img, (res) => {
					this.setData({
						'imageURL': res.imageURL,
					});
				}, (error) => {
					 console.log('error: ' + error);
				}, {
					region: 'ECN',	//服务器区域号
					domain: RequestConstant.QiNiu,//七牛云域名
					key: path, // 上传到七牛云图片就是这路径
					uptoken: this.token, // 由其他程序生成七牛 uptoken
				}, (res) => {
					console.log('上传进度', res.progress)
					console.log('已经上传的数据长度', res.totalBytesSent)
					console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
				}, (res) => {
					// 取消上传
				}, (res) => {
					// `before` 上传前执行的操作
				}, (err) => {
					// `complete` 上传接受后执行的操作(无论成功还是失败都执行)
				});
				// 得到上传后的图片 拼接地址收集
				this.imgList.push(RequestConstant.QiNiu+'/'+path)
			},
			// 获取七牛token
			qiniuToken(){
				this.$get(RequestConstant.qiniuToken).then(res=>{
					this.token = res.result
				})
			},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序调用uploadFile接口可以向七牛云存储上图片。首先,我们需要获取到七牛云的上凭证(token),然后使用微信小程序的uploadFile接口将图片至七牛云。 具体步骤如下: 1. 在小程序后台或自己的服务器上请求七牛云的上凭证。可以使用七牛云的SDK或者API进行请求。 2. 在小程序中调用wx.uploadFile接口,设置url为七牛云的上接口,formData中设置为 {key: '上文件在七牛云的保存路径', token: '七牛云的上凭证'}。 3. 小程序通过wx.chooseImage接口选择要上图片,并将选择的图片临时路径给wx.uploadFile的filePath参数。 4. 小程序调用wx.uploadFile接口进行图片,上成功后会返回七牛云中图片的保存路径。 需要注意的是,在上图片之前,我们可能需要对图片进行压缩、裁剪或者添加水印等处理,以满足七牛云保存图片的要求。 同时,七牛云对于图片还提供了许多其他的功能,如图片样式处理、图片持久化等,我们可以根据需要进行设置。 使用七牛云存储可以方便地进行图片与管理,并且具有高可靠性和高性能。为了保证数据的安全性,我们还可以设置七牛云的访问控制,限制只有授权用户才能访问上图片。 总之,通过微信小程序调用uploadFile接口向七牛云存储上图片,可以实现图片的高效、安全地存储和管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值