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,一经查实,立即删除!

相关文章

iphone11右上角信号显示_苹果iOS11信号强度的标志变了意味着什么?

原标题&#xff1a;苹果iOS11信号强度的标志变了意味着什么?在iOS 11测试版中&#xff0c;苹果将状态栏中表示 LTE信号强度的5个小圆点换成了4 个竖状条。从 iOS 7 到 iOS 10苹果就一直使用小圆点标志信号强度设计&#xff0c;而这次的改变也意味着范围的变化。这到底是什么意…

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

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

【uoj#37/bzoj3812】[清华集训2014]主旋律 状压dp+容斥原理

题目描述 求一张有向图的强连通生成子图的数目对 $10^97$ 取模的结果。 题解 状压dp容斥原理 设 $f[i]$ 表示点集 $i$ 强连通生成子图的数目&#xff0c;容易想到使用总方案数 $2^{sum[i]}$ 减去不为强连通图的方案数得到强连通图的方案数&#xff0c;其中 $sum[i]$ 表示点集 $…

交换机实现虚拟局域网

但由于它是逻辑地而不是物理地划分&#xff0c;所以同一个 VLAN内的各个工作站无须被放置在同一个物理空间里&#xff0c;即这些工作站不一定属于同一个物理LAN网段。一个VLAN内部的广播和单播流量都不会转发到其他 VLAN中&#xff0c;即使是两台计算机有着同样的网段&#xff…

产品与项目

产品和项目到底有什么区别&#xff0c;扩展开说&#xff0c;做产品和做项目最大的不同在哪里&#xff1f;产品经理和项目经理&#xff08;都是PM&#xff0c;有时候自己都搞不清说的哪一个&#xff09;职责的不同在哪里&#xff1f;一直困扰了我很长时间&#xff0c;直到2007年…

python斐波那契前20递归_算法python实现经典递归问题(汉诺塔, 斐波那契数列,阶乘)...

经典递归汉诺塔问题背景故事传说印度某间寺院有三根柱子&#xff0c;上串64个金盘。寺院里的僧侣依照一个古老的预言&#xff0c;以上述规则移动这些盘子&#xff1b;预言说当这些盘子移动完毕&#xff0c;世界就会灭亡。这个传说叫做梵天寺之塔问题(Tower of Brahma puzzle)。…

Hello This Cruel World!

第一天&#xff0c;已经成为了半年的OIer&#xff0c;仍然是个蒟蒻&#xff0c;希望以后能够变强&#xff01; 在OJ和博客的常用网名&#xff1a; TimeTraveller ->洛谷 VictoryCzt ->csdn,cnblog等 Czt Czttt czt ->OJ CrazyTea CrazyTeaMajor 游戏&#xff0c;QQ…

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

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

信道效率以及信道的吞吐率

信道的效率即为信道的利用率&#xff0c;是指发送方在一个发送周期的时间内&#xff0c;有效的发送数据所需要的时间占整个发送周期的比率。 例如,发送方从开始发送数据&#xff0c;到收到第一个确认帧为止&#xff0c;称为一个周期&#xff0c;设为T。发送方在这个周期内共发…

jquery兄弟标签_js jquery获取当前元素的兄弟级 上一个 下一个元素

var chils s.childNodes; //得到s的全部子节点var pars.parentNode; //得到s的父节点var nss.nextSbiling; //获得s的下一个兄弟节点var pss.previousSbiling; //得到s的上一个兄弟节点var fcs.firstChild; //获得s的第一个子节点var lcs.lastChile; //获得s的最后一…

将本地代码备份到Github public repository

1. 在本地代码所在的文件夹中初始化&#xff0c;即打开powershell&#xff0c;输入下面命令 git init 此时本地文件夹中会出现一个.git的隐藏文件夹。 2. 然后将当前的文档commit&#xff0c;在本地commit之前可以先加一个.gitignore文件&#xff0c;忽略一些不必要的文件&…

推辞掉得不是你的工作,而是你的未来

在民营企业&#xff0c;年轻人无疑是主力&#xff0c;为什么年纪相仿&#xff0c;他是经理&#xff0c;我却是职员&#xff1f;相信对此愤恨不平的大有人在&#xff01;说什么人家后台硬、或者别人嘴巴甜&#xff0c;恨自己生不逢时、怨自己出身平凡的居多&#xff0c;相反检讨…

路考计算机系统评判,科目三智能考试有效解决路考舞弊行为

科目三智能考试是指通过在考试车辆上加装计算机、定位系统、传感器、音视频采集等设备实现对考试项目的自动化评判&#xff0c;代替原来人工评判&#xff0c;且记录考试过程的音视频资料&#xff0c;提供考试过程回放等相关功能。科目三自动化考试减少了人为因素对考试过程的干…

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

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

什么材料反射热量好_封阳台用什么材料好,封阳台用什么玻璃好

展开全部阳台是建e68a8462616964757a686964616f31333433663065筑物室内的扩张&#xff0c;是居住者吸取新鲜空气、晒各种衣物、放置盆栽的场地方&#xff0c;其装修需要顾及实用更要注重美观问题。封阳台的优点1、具有保暖等的作用。阳台封闭后&#xff0c;多了一层抵挡尘埃和噪…

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;并且将人类变成半机械人。 △ 伊隆马斯克 李开…