1、实现效果如下图所示

用户选择本地待上传的图片,选择成功后,上传组件隐藏,呈现本地预览组件,单击图片并实现图片的放大呈现
2、template(相当于html)部分的代码如下
代码实现逻辑:
在el-upload组件中,将auto-upload设置为false不会执行自动上传,给予on-change一个触发事件imgSaveToUrl,在imgSaveToUrl方法中用于生成可用于本地预览的URL,
其中预览组件中, :preview-src-list="[localUrl]"用于实现单击图片放大呈现
<template>
<div class="mixin-components-container">
<div class="content-container">
<!-- 图片上传控件-->
<el-row style="padding-left:100px;padding-right:100px;background:#">
<el-upload
v-if="isShowUpload"
class="upload-demo"
drag
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture"
:auto-upload="false"
:on-change="imgSaveToUrl"
:accept="'image/*'"
>
<i class="el-icon-upload" style="color:#409EFF"></i>
<div class="el-upload__text text">
将图片拖到此处,或
<em>点击上传</em>
</div>
<div
class="el-upload__tip text"
slot="tip"
>提示:可支持PNG、JPG、BMP,图片大小不超过4M,长边不大于4096像素,请保证识别的部分为图片的主题部分</div>
</el-upload>
</el-row>
<!-- 本地预览需要上传处理的图片-->
<el-row v-if="isShowImgUpload" style="padding-left:100px;padding-right:100px;">
<el-col :span="4" style="color:white">1</el-col>
<el-col :span="16">
<div style="position:relative;background-color: #f0f3fa;">
<el-image
:src="localUrl"
:preview-src-list="[localUrl]"
style="width:100%;height:600px;"
fit="scale-down"
></el-image>
</div>
<div style="padding: 5px;">
<el-button type="primary" :loading="false" size="small" @click="uploadButtonClick">重新上传</el-button>
<el-button type="primary" :loading="false" size="small" @click="processButtonClick">立即处理</el-button>
</div>
</el-col>
<el-col :span="4" style="color:white">1</el-col>
</el-row>
</div>
</div>
</template>3、methods部分的imgSaveToUrl方法代码如下
event.raw为图片实体,可通过consolse打印查看详情
imgSaveToUrl(event) {
// 获取上传图片的本地URL,用于上传前的本地预览
var URL = null;
if (window.createObjectURL != undefined) {
// basic
URL = window.createObjectURL(event.raw);
} else if (window.URL != undefined) {
// mozilla(firefox)
URL = window.URL.createObjectURL(event.raw);
} else if (window.webkitURL != undefined) {
// webkit or chrome
URL = window.webkitURL.createObjectURL(event.raw);
}
// 转换后的地址为 blob:http://xxx/7bf54338-74bb-47b9-9a7f-7a7093c716b5
this.localUrl = URL;
this.isShowImgUpload = true;//呈现本地预览组件
this.isShowUpload = false;//隐藏上传组件
},
版权声明:本文为zrcj0706原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。