安装
npm i lrz --save
main.js 文件引入
import lrz from 'lrz'
页面使用
<template> <div> <!-- 上传本地图片并回显 --> <input type="file" id="inputFileImg" name="pic" accept="image/*" @change="onFileChange" ref="inputer"> <ul> <li v-for="(img) in imgList" :key="img.id" @click="imgListClick(img.id)"> <img alt="再无图片" id="myImg" :src="img.img" height="100px" width="100px"> </li> </ul> </div> </template> <script> import $ from 'jquery' export default { data() { return { imgId: 0, imgList: [], }; }, methods: { // 监听上传图片 onFileChange (e) { var file = e.target.files[0]; // 压缩图片 lrz( file, { with: 50, // 图片最大的宽度。默认为原图的宽度 height: 50, // 图片最大的高度,默认为原图的高度 quality: 0.2, // 图片压缩质量,取值0-1,默认为0.7 filedName: '', // 后端接收的字段名,默认为 'file' }).then( (rst) => { // 处理成功会执行 var _this = this; // 回显图片 _this.imgList.push({ id: _this.imgId += 1, img: rst.base64 }); console.log(rst.file.size / 1024, 'kb'); // 压缩后 }) .catch(function (err) { // 处理失败会执行 }) .always(function () { // 不管是成功失败,都会执行 }); console.log(file.size / 1024, 'kb'); // 压缩前 }, // 删除图片 imgListClick (id) { this.imgList = this.imgList.filter( (item) => { return item.id != id; }); } }, } </script> <style lang='less' scoped> </style>