vue用阿里云oss上传图片使用分片上传只能上传100kb以内的解决办法

首先,vue和阿里云oss上传图片结合参考了 这位朋友的 https://www.jianshu.com/p/645f63745abd 文章,成功的解决了我用阿里云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/document_detail/32069.htm

exopose header 要设置为 ETag

当成功设置之后,大于100k的就可以成功上传了,但是返回的数据和小于100k的不太一样,

大于100k之后没有直接返回url,只有在res.requestUrls 里可以看到对应的url ,但是后面还会有一个分片上传的id。

返回数据对应如下:

小于100k:

 

大于100k时:

 

看了官方文档有关分片上传的方法,表示并没有看懂如何把分片集合上传,文档在此,https://help.aliyun.com/document_detail/31850.html  如有大神看懂,还请多多指教!!不胜感激!!

 

最终我用截取字符串截取到大于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('图片最多上传十张');}}}});},
<div class="uploadBox"><!--<input type="file" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" multiple @change="onFileChange">--><input type="file" accept="image/*" multiple @change="onFileChange"><div><svg class="icon-jia icon" aria-hidden="true"><use xlink:href="#icon-jia"></use></svg><p>添加照片</p></div>
</div>

 

这个上传图片的方法实现阿里云多图上传,图片大小限制,调用后台返回的接口  

/oss/get_token 

获得相应的secret。运用了mint-ui组件。

我把一个upload上传组件放在了我的github:打开vue+阿里云oss上传组件

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机二级access选择题技巧,计算机二级access考试注意事项及解题技巧策略

计算机二级access考试注意事项及解题技巧策略2017年计算机考试将至&#xff0c;今天yjbys小编为大家带来了计算机二级access考试注意事项及解题技巧哦!快点行动起来吧~考试注意事项1.考试时间&#xff1a;120分钟(即2小时)2.考试类型&#xff1a;上机操作 (总分100分&#xff0…

计算机系统的部件名称作用,电脑配件与每个配件作用详细完整的解释

电脑各配件的具体功能和特性说起来很长&#xff0c;先简单介绍一下。一台个人台式电脑的主要配件有&#xff1a;1.主板&#xff1a;也叫母板&#xff0c;是连接CPU、内存、AGP等电脑配件的最主要最基本的载体&#xff0c;主板的结构类型决定电脑各配件的结构和类型&#xff0c;…

跟我一起玩Win32开发(20):浏览文件夹

最近忙于一些相当无聊的事情&#xff0c;还没忙完&#xff0c;不过&#xff0c;博客还是要写的&#xff0c;不然我头顶上会多了几块砖头。 在上一篇博文中&#xff0c;我们浏览了文件&#xff0c;今天我们也浏览一下目录&#xff0c;如何&#xff1f; 浏览目录我们同样有两个规…

k8s实战之从私有仓库拉取镜像 - kubernetes

1、实战目的 从私有docker仓库拉取镜像&#xff0c;部署pod。上一篇中&#xff0c;我们搭建了私有的镜像仓库&#xff0c;这一篇我们将与k8s结合实战使用私有仓库。 2、登录docker 为了完成本次实战&#xff0c;需要登录docker&#xff0c;如下&#xff1a; 3、为k8s集群创建Se…

李开复评价马斯克:他真正的目的是把人变成半机械人

本文来自AI新媒体量子位&#xff08;QbitAI&#xff09;李开复在昨日接受Quartz的采访时说&#xff0c;伊隆马斯克在用太阳能汽车和脑部医疗植入物做诱饵掩饰他真正的目的&#xff1a;改变从传统电力公司获得能源的方式&#xff0c;并且将人类变成半机械人。 △ 伊隆马斯克 李开…

c语言的翻译叫什么_什么是编译器?什么是集成开发环境?

我们平时所说的程序&#xff0c;是指双击后就可以直接运行的程序&#xff0c;这样的程序被称为可执行程序&#xff08;Executable Program&#xff09;。在 Windows 下&#xff0c;可执行程序的后缀有 .exe 和 .com&#xff08;其中 .exe 比较常见&#xff09;&#xff1b;在类…

平板电脑硬件如何测试软件,先锋(Pioneer)G71平板电脑软件测试评测-ZOL中关村在线...

谷歌对旗下的智能操作系统Android采取了开源的做法&#xff0c;所以说也就造成了它相较于苹果iOS以及微软Windows系统严重的碎片化现象&#xff0c;当然我们也看到了像三星 TouchWiz UX&#xff0c;HTC Sense UI以及小米 MIUI这些非常成熟且易用的第三方固件&#xff0c;只是它…

WPF 中设置Combox下拉框Text 显示值

最近在写一个WPF客户端的一个小程序&#xff0c;其中有个小需求如下&#xff1a; 展示下拉列表里面有树形结构点击下拉子项时同时显示父级和子级文本也就是说在DisplayMember 中有两种显示方式 下拉列表显示时&#xff0c;显示的是DisplayMember 的值点击选中子项时&#xff0c…

简单的文件上传功能实现(java)

现在很多做后台系统的项目大部分都会用到文件上传这个功能&#xff0c;网上有很多例子&#xff0c;这边是自己用SSM框架技术做的一个简单的文件上传功能。 在写文件上传功能前首先要导入相应的jar包&#xff1a; commons-fileupload-1.3.1-jar &#xff1b;commons-io-2.2-jar …

增量导出_[华为]一种实用的增量式深度CTR模型训练方法

今天给大家介绍一篇有关深度CTR模型增量训练的文章&#xff0c;来自华为诺亚方舟实验室。1、背景深度CTR模型需要大量的数据进行训练&#xff0c;同时需要不断的更新以适应最新的数据分布。如果模型没有及时更新&#xff0c;则有可能带来线上效果的衰减&#xff0c;如下图&…

win7如何添加终端服务器,Windows7系统超级终端的添加方法 win7如何添加超级终端...

有用户在刚升级到Windows7系统以后反映&#xff0c;在XP 操作系统里&#xff0c;超级终端是很好用的&#xff0c;但是却不知道为什么&#xff0c;升级为Windows7系统后却找不到超级终端在哪&#xff0c;出现这样的情况让用户非常的烦恼&#xff0c;其实找不到超级终端&#xff…

腾讯这家公司的核心竞争力是什么?为什么?

Andy Pan &#xff0c;腾讯无线国际业务产品总监, 腾讯国际业务部... 我决定在国外出差的最后一晚晚点休息,在酒店静静的认真的回答这个问题。我尽量客观的负责的回答&#xff0c;不愤青&#xff0c;不炫耀&#xff0c;不攻击&#xff0c;用朴实的语言。只代表我个人的思考&…

h.323 服务器 作用,Cisco CallManager服务器冗余的H.323 网关拨号对端配置

语音、视频和集成数据 (AVVID) 设计的体系结构一般建议您具有主 Cisco CallManager 服务器和辅助 Cisco CallManager 服务器以实现冗余。如果主 Cisco CallManager 服务器发生故障&#xff0c;则辅助 Cisco CallManager 服务器将接管&#xff0c;并且 IP 电话将重定向到此服务器…

xmind可以画流程图吗_新娘妆可以自己画吗?临夏化妆学校告诉你答案!

对于很多女性来说&#xff0c;一生中最重要的时候无疑是新婚的那一天&#xff0c;古时候的闺阁女子&#xff0c;凤披霞冠&#xff0c;八台大轿&#xff0c;携手自己的如意郎君相伴一生&#xff0c;现代女子&#xff0c;洁白的婚纱&#xff0c;手握鲜花&#xff0c;一枚戒指&…