摘要:首先,和阿里云上传图片结合参考了这位朋友的文章,成功的解决了我用阿里云上传图片前的一头雾水。我把一个上传组件放在了我的打开阿里云上传组件
首先,vue和阿里云oss上传图片结合参考了 这位朋友的 https://www.jianshu.com/p/645... 文章,成功的解决了我用阿里云oss上传图片前的一头雾水。
该大神文章里有写github地址,里面的2.0分支采用vue2.0实现,只不过这个上传图片用的是分片上传,即断点续传,分片上传由于一片是以100kb为起始的,所以当图片大小小于100kb的时候不分片,可以正常上传,当大于100k的时候,会报错如下:
One or more of the specified parts could not be found or the specified entit
当报这个错误的时候,请看看阿里云自己的后台有没有按文档设置
文档地址:https://help.aliyun.com/docum...
exopose header 要设置为 ETag
当成功设置之后,大于100k的就可以成功上传了,但是返回的数据和小于100k的不太一样,
大于100k之后没有直接返回url,只有在res.requestUrls 里可以看到对应的url ,但是后面还会有一个分片上传的id。
返回数据对应如下:
小于100k:
大于100k时:
看了官方文档有关分片上传的方法,表示并没有看懂如何把分片集合上传,文档在此,https://help.aliyun.com/docum... 如有大神看懂,还请多多指教!!不胜感激!!
最终我用截取字符串截取到大于100k的图片的url,实现客户端预览。
我的最终代码如下(这是vue中绑定在 input file上的一个函数):
onFileChange(e) { const _this = this; axios({ url: "/oss/get_token", method: "GET", headers: {"w-auth-token": this.token} }).then((res) => { var client = new OSS.Wrapper({ accessKeyId: res.data.accessKeyId, accessKeySecret: res.data.accessKeySecret, stsToken: res.data.securityToken, region: _this.region, bucket: _this.bucket }); let files = e.target.files || e.dataTransfer.files; if (!files.length)return; if (files.length) { const fileLen = files.length; const currentImgLength=_this.imgList.length; const restLength=10-currentImgLength; if(currentImgLength>10){ Toast("图片最多上传十张"); }else{ if(fileLen<=restLength){ for (let i = 0; i < fileLen; i++) { const file = files[i]; let date = new Date(); let path="wap/life/release/"+this.id+"/"+date.getFullYear()+(date.getMonth()+1)+date.getDate()+date.getHours()+date.getMinutes()+date.getSeconds()+date.getMilliseconds()+ "." + file.name.split(".").pop(); let size=file.size; if(Math.round(size/(1024*1024)*100)/100<=2){ client.multipartUpload(path, file).then((results) => { if(size>=100*1024){ _this.imgList.push(results.res.requestUrls[0].split("?")[0]); }else{ _this.imgList.push(results.url); } console.log(results); }).catch((err) => { Toast("上传图片失败,请重试!"); }); }else{ Toast("上传图片不能超过2M,请重试!"); } } }else{ Toast("图片最多上传十张"); } } } }); },添加照片
这个上传图片的方法实现阿里云多图上传,图片大小限制,调用后台返回的接口 /oss/get_token
获得相应的secret。运用了mint-ui组件。
我把一个upload上传组件放在了我的github:打开vue+阿里云oss上传组件
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/90656.html
摘要:腾讯云和阿里云针对按量计费的云服务器,均要求账户内有一定的余额腾讯云好像没有最低充值要求,充值元即可阿里云要求账户内至少有元余额。基于上述原因,我们分别在腾讯云和阿里云创建最低配版的云数据库和。 云计算市场争夺阿里云作为名副其实的国内业界第一,名声非常大,不过最近 IT 之家的事闹出来之后,我有点庆幸最终没有选择它。腾讯云算是业界老二,而且有着腾讯这个强大的靠山,云服务产品的种类和质量...
摘要:最近国内公有云服务商掀起了一轮降价浪潮,继阿里云上月宣布降价之后,腾讯云也在本月初推出全线降价优惠。上个月阿里云在云栖大会上宣布降价,昨天腾讯云方面也推出了全线降价活动,对包年包月产品均提供了大幅度的降价优惠。 最近国内公有云服务商掀起了一轮降价浪潮,继阿里云上月宣布降价之后,腾讯云也在本月初推出全线降价优惠。本文希望从云计算用户的角度,通过真实的产品使用、评测,对降价后各家的产品性价...
阅读 3275·2021-11-24 09:39
阅读 2784·2021-10-12 10:20
阅读 1859·2019-08-30 15:53
阅读 3056·2019-08-30 14:14
阅读 2580·2019-08-29 15:36
阅读 1091·2019-08-29 14:11
阅读 1923·2019-08-26 13:51
阅读 3386·2019-08-26 13:23