小白我最近要把图像直接保存在COS上,不要问我COS是什么,不知到找度娘。COS买好了,自己也可以在COS手动上传图像。然后在百度度了一堆代码,复制上去:
//这句加在开头的getApp()下面一行
var COS = require('/cos-wx-sdk-v5.js')
uploadImgFile: function() {//打开图库,选择图片
this.setData({ motto: "选择图片" }),
wx.chooseImage({
count: 3,//限制一张图片
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success :res => {
// tempFilePath可以作为img标签的src属性显示图片
const tempFilePaths = res.tempFilePaths;//注意是数组
console.log(tempFilePaths[0]);
this.setData({imgFileLocalPath:tempFilePaths[0]});//取第一个元素
this.setData({ motto: "已选择本地图片:"+this.data.imgFileLocalPath });
this.setData({usermotto_uploadcos_class:'usermotto_uploadcos_show'});
this.setData({needUploadFilePath:tempFilePaths[0]});
this.setData({needUploadFileName:this.data.needUploadFilePath.substr(this.data.needUploadFilePath.lastIndexOf('/') + 1)});//提取文件名
}
})
},
//方法结束
//javascript
//上传图片到cos
uploadImgFile2TC:function(){
var _this = this;
// var cos=getCosObj();//构建cos 对象,下面有单独定义
//生成签名:
var cos = new COS({
SecretId: 'AKIDGI4ZolSs1sSmoa5LL3UeYXXSaOwEEyRDj',
SecretKey: 'FFxOYS5QUIp66pHSN1OXXX3lCLDo8Av'
})
console.log(cos);
var filename=_this.data.needUploadFileName;
var filePath=_this.data.needUploadFilePath;
//上传文件
//上传文件
cos.postObject({
Bucket: 'XXXXX-1259629562', //存储桶名称
Region: 'ap-guangzhou', //地域名字
Key: this.getTimeString() + '.jpg', //文件名字
StorgeClass: 'STANDARD', //存储方式
// FilePath: file, //上传对象
FilePath: filePath, //上传对象
onProgress: function (progressData) {
// 进度条
console.log(JSON.stringify(progressData));
}
},function (err, data) {
console.log(err || data);
if(data!=null){
var fileCosFilePath=data.Location;//上传成功之后,返回路径信息,用于后台存库
console.log("file cos path:="+fileCosFilePath);
_this.setData({ motto: "腾讯云地址:" +fileCosFilePath});
_this.setData({imgFileLocalPath:fileCosFilePath});
_this.setData({usermotto_uploadcos_class:'usermotto_uploadcos_hide'});
}
});
},
// 文件名称
getTimeString: function () {
var date = new Date();
var yy = date.getFullYear().toString();
var mm = (date.getMonth() + 1).toString();
var dd = date.getDate().toString();
var hh = date.getHours().toString();
var nn = date.getMinutes().toString();
var ss = date.getSeconds().toString();
var mi = date.getMilliseconds().toString();
var ret = yy + mm + dd + hh + nn + ss + mi;
return ret;
},
点击运行,一堆错误,仔细查找,以下原因:shi
1、cos-wx-sdk-v5.js没有导入,如果不知到怎么导入,下载我的源码,找到这个文件,复制在你使用的页面下即可。
2、配置COS参数:
SecretId: 'AKIDGI4ZolSs1sSmoa5LL3UeYBWaOwEEyRDj',
SecretKey: 'FFxOYS5QUIp66pHSN1OTHo43lCLDo8Av'
Bucket: 'XXXXX-1259629562', //存储桶名称
Region: 'ap-guangzhou', //地域名字
这些参数哪里找呢?小白开始也是七窍通了六窍啊,度呀度,别人告诉我也不知道呀,没老师,真心的难。最后走了很多弯路才搞明白,其实大家说的都对,单那些是对那些底子好的码农,对于小白我真心看不懂,话不多说,怎么查看呢?进入以下腾讯云以下界面:
可以看到我涂掉的桶名( Bucket)和地域名 (Region)
点击配置,进入页面,点击页面的右上角,点击访问管理,坐下出现访问密匙,进入即可看见。如图:
填上去即可运行了