Vue.js怎么实现文件上传压缩优化(vue.js,开发技术)

时间:2024-05-05 00:18:29 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Vue.js%E6%80%8E%E4%B9%88%E5%AE%9E%E7%8E%B0%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%8E%8B%E7%BC%A9%E4%BC%98%E5%8C%96

希望大家仔细阅读,能够学有所成!

两种方法 :

第1种是借助canvas的封装的文件压缩上传

第2种(扩展方法)使用compressorjs第三方插件实现

下面来详细介绍两种方法:

封装之前,先要对canvas相关的方法有所了解

<canvas>简单实例如下:

注意:标签通常需要指定一个id属性 (或者其他), width 和 height 属性定义的画布的大小.

使用 style 属性来添加边框:

将base64转换为file文件

使用canvas的方法实现(拓展)

drawImage() 方法在画布上绘制画布。

在画布上定位图像:

在画布上定位图像,并规定图像的宽度和高度:剪切图像,并在画布上定位被剪切的部分:

canvas的toDataURL()方法是返回一个包含图片展示的 数据URL。可以使用type参数其类型,默认为png格式

option表示0到1之间的取值,选定图片的质量,默认值是0.92

导出方法imgZip

main.js

这里使用了vant ui框架,实现的头像上传,如果用原生的input file方法也是一样的使用方式

限制上传数量

通过max-count属性可以限制上传文件的数量,上传数量达到限制后,会自动隐藏上传区域。

禁用文件上传

通过disabled属性禁用文件上传。

限制上传大小图片

上传之前的图片验证

afterCard方法,当提交了头像,先进行压缩处理,再去把formData文件流 作为参数调用接口,

获取到后台返回的图片路径,再调用更新头像接口,把获取的数据赋值显示头像的img.

如果这里使用原生的input file,可按照如下操作

示例:

});

使用compressorjs第三方插件实现

compressorjs 是一个开源的图片处理库,提供了图片压缩、图片旋转等能力

语法:

ImageCompressor.js

quality:quality || 0.6, //压缩质量,图片压缩比 0-1

此插件还能解决ios移动端拍照图片翻转90度问题

这里记得使用 async await,注意使用的file取值,与第一种的方法有所不同

},

如果这里使用原生的input file,可按照如下操作

示例:

});

本文:Vue.js怎么实现文件上传压缩优化的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:怎么将Java与C#时间进行互相转换下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18