微信小程序使用cos上传图片的分享

微信小程序使用cos上传图片的分享

1.引入cos-wx-sdk-v5.min.js文件,开始腾讯api上下载的cosjs文件是没法用的,但是由于项目重要,有保障的老师,老师临时改了cos的sdk的源文件,然后就可以引入了

2.使用的页面里引入cos文件,如:

var COS = require(‘../../config/cos-wx-sdk-v5.min.js’);

3.在微信小程序的onload()生命周期里初始化cos,如下:

var cos = new COS({
            // ForcePathStyle: true, // 如果使用了很多存储桶,可以通过打开后缀式,减少配置白名单域名数量,请求时会用地域域名
            getAuthorization: function (options, callback) {
                util.request(‘服务端提供的接口获取key和id’, { method: ‘GET’, dataType: ‘json’ }).then((data) => {
                    var hasTmpSecretId = data.tmpSecretId;
                    var hasTmpSecretKey = data.tmpSecretKey;
                    var hasXCosSecurityToken = data.sessionToken;
                    var hasTimestamp = data.timestamp;
                    if (!data) return console.error(‘credentials invalid’);
                    callback({
                        TmpSecretId: hasTmpSecretId,
                        TmpSecretKey: hasTmpSecretKey,
                        XCosSecurityToken: hasXCosSecurityToken,
                        StartTime:hasTimestamp,//hasTimestamp,//Math.round(Date.now()/1000), //
                        ExpiredTime: hasTimestamp + 3600,//Math.round(Date.now()/1000)+3600, //
                    });
                }).catch((error) => {
                    console.log(error);
                });
            }
        });
        this.setData({
            cos: cos
        });

4.提交并获取等

_this.data.cos.postObject({
                    Bucket: ‘固定给的’,
                    Region: ‘固定给的’,
                    Key: ‘固定给的’ + datas + ‘/’ + uuidData + ‘/’ + filename,
                    FilePath: filePath,
                    onProgress: function (info) {
                    }
                }, function (err, data) {
                    if (data) {
                        _this.setData({
                            bigImgtype: true,
                            fileImg: filePath,
                            filePath: data.Location  //入参给确认提交
                        });
                        setTimeout(function () {
                            wx.hideLoading();
                        }, 600);
                        _this.data.cos.getObject({  //获取图片解析的值
                            Bucket: ‘固定给的’,
                            Region: ‘固定给的’,
                            Key: ‘固定给的’ + datas + ‘/’ + uuidData + ‘/’ + filename + ”,
                            Query:{
                               ‘ci-process’: ‘QRcode’,
                            },
                            Expires: 600, // 这样子限制链接900秒后失效
                        }, (err, data) => {
                            if(data){
                                const json = COS.util.xml2json(data.Body);  //返回的值格式转化
                                console.log(“json”,json)
                               if(json.Response.QRcodeInfo){
                                _this.setData({
                                    reagentUDI:json.Response.QRcodeInfo.CodeUrl
                                });
                               }
                            }
                            if(err){
                                log.error(‘geterr’,err)
                                const json = COS.util.xml2json(data.Body);
                                _this.setData({
                                    reagentUDI:json.Response.QRcodeInfo.CodeUrl
                                });
                            }
                        });
                    }
                    if(err){
                        log.error(‘posterror’,err)
                        wx.hideLoading();
                    }
                });

本文来自投稿,不代表PmTemple立场,如若转载,请注明出处:

。如有涉及侵权行为,请发送相关证明材料至邮箱admin@pmtemple.com
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年6月17日 下午2:08
下一篇 2022年6月17日 下午1:24

相关推荐

发表评论

登录后才能评论
分享本页
返回顶部