core net vue 图片上传_轻量级Vue图片上传插件——Vue-core-image-Upload

本文介绍了Vue轻量级图片上传插件Vue-core-image-Upload,支持图片上传、裁剪和压缩。适用于移动端,提供多种上传周期事件,允许自定义样式和组件行为。详细讲解了安装、基本属性、响应事件、裁剪图片、调整图片、上传多个文件以及压缩图片等功能。
摘要由CSDN通过智能技术生成

介绍

vue-core-image-upload 是一款轻量级的 Vue.js 上传插件,它可以支持的图片的上传,裁剪,压缩。它同样也支持在移动端的图片处理,它定义了诸多上传周期,你可以自由的进行流程控制。

Githubhttps://github.com/Vanthink-UED/vue-core-image-upload

安装npm install vue-core-image-upload --save

安装完成后,编辑源码

class="btn btn-primary"

:crop="false"

@imageuploaded="imageuploaded"

:data="data"

:max-file-size="5242880"

url="***" >

import VueCoreImageUpload from 'core/vue-core-image-upload.vue'

export default {

components: {

'vue-core-image-upload': VueCoreImageUpload,

},

data() {

return {

src: '***.png',

}

},

methods: {

imageuploaded(res) {

if (res.errcode == 0) {

this.src = res.data.src;

}

}

}

};

基本属性

Vue-core-image-upload 提供了很多可配置的选项,从而希望尽可能的满足开发者的需求。

:class="['btn', 'btn-primary']"

:crop="false"

@imageuploaded="imageuploaded"

:data="data"

:max-file-size="5242880"

url="***" >

响应事件

我们在上传的不同阶段指定了不同的派发事件,你可以绑定每个事件的响应方法,实现对于流程的控制。imageuploaded

当图片上传完,会调用该事件绑定的函数,并且用户可以获取到服务端返回的数据。imagechanged

当input框改变选择图片时候触发,会返回input的获取的图片数据imageuploading

当图片上传过程中触发,你可以自定义你需要处理的内容比如显示加载动画等。errorhandle

当图片上传发生错误的时候触发,会返回错误状态信息

:class="['btn', 'btn-primary']"

:crop="false"

@imagechanged="imagechanged"

@imageuploading="imageuploading"

@imageuploaded="imageuploaded"

:max-file-size="5242880"

url="***.php" >

methods: {

imagechanged() {

this.step += 1;

},

imageuploading() {

this.step += 1;

},

imageuploaded(res) {

this.step += 1;

this.src = res.data.src;

}

}

自定义组件样式

你可以设置组件的class 以及自己编写子组件的形式来控制组件的显示的样子。

:crop="false"

@imageuploaded="imageuploaded"

:data="data"

:max-file-size="5242880"

url="***.php" >

裁剪图片

你可以通过设置 crop,来实现图片的裁剪。你可以指定图片裁剪的宽高,以及它的最大宽度和高度这些参数。

设置 cropRatio来限制裁剪图片的形状,需要字符串的格式(1:1 或者2:3这种比例形式),当然你可以设置为 auto 则不限制裁剪框的形状。

设置图片裁剪后,批量上传将不再生效。

图片裁剪完有两种选择,选择本地裁剪local或者服务端裁剪 server。本地裁剪

你可以将 crop 设置为 local 来实现本地裁剪。本地裁剪完成后发送给服务端接口的图片便是已经裁剪好的图片。

服务端裁剪

服务端裁剪是指将原图片和裁剪的参数一起发给后端,方便服务端保存原图,以及对原图的其他操作,而服务端能够接收到post的参数如下:

crop-ratio="1:1"

:class="['btn', 'btn-primary']"

crop="server"

url="....php"

extensions="png,gif,jpeg,jpg"

text="Crop Image"

@imageuploaded="crpoServerImageUploaded">

调整图片

你可以设置 resize 来进行图片的缩放。

设置resize="local" 意味着图片的缩放将在本地进行。发给服务端的将会是大小调整完毕的后的图片。

crop-ratio="1:1"

class="btn btn-primary"

resize="local"

url="**.php"

extensions="png,gif,jpeg,jpg"

text="Resize Image"

@imageuploaded="resizeLocalImageUploaded">

上传多个文件multiple

你可以使用 multiple 属性设置为true来实现多文件的上传。需要注意的是,你设置了该属性后,服务端收到文件上传的字段数据会是一个数组。multiple-size

你可以使用multiple-size来限制图片的数量,你可以限制上传文件的数量。

class="btn btn-primary"

:crop="false"

@imageuploaded="imageUploded"

:max-file-size="5242880"

:multiple="true"

:multiple-size="4"

url="***.php" >

压缩图片

设置compress的数值,你可以在上传之前进行图片的本地压缩。其中 compress 为 0 表示不压缩,数据越大,图片的质量越差,且最大值不能大于100。

:class="['btn', 'btn-primary']"

@imageuploaded="imageUploded"

:max-file-size="5242880"

compress="50" // 设置压缩比例

url="***/upload" >

向服务端发送数据

你可以设置data 来将一些附带的数据发送给服务端。 当然你也可以将一些数据包含在 header 中传递过去,你只需要绑定到 header即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值