解决ElementUI组件中el-upload上传图片不显示问题

 更新时间:2022年10月08日 10:52:34   作者:EvaY_Yang  
这篇文章主要介绍了解决ElementUI组件中el-upload上传图片不显示问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

ElementUI组件中el-upload上传图片不显示

上传图片的方法有很多,我们可以通过input上传的功能来上传文件、文件夹。同时,我们也可以通过使用ElementUI中的el-upload标签来上传图片、视频。当我们使用el-upload来上传时往往出现上传的图片并不能显示的问题,如下图:

此时,从图中可以看出图片已经上传,但是并不显示图片,又或者出现下图情况,刚上传图片时,可以显示,但是不久就出现下图情况,甚至图片又消失不见,真是令人头大!

那么,遇到这种问题的小可爱们,看过来啦!我们可以直接在before-upload事件中添加

this.imageUrl = URL.createObjectURL(file);

其中  imageUrl是图片的路径,这样就可以解决图排尿显示的问题。

直接上代码:

<template>
	<div class="dashboard-container">
		<div class="dashboard-text">name: Upload 上传</div>
		<el-upload class="avatar-uploader" action="#" :show-file-list="false"
			 :before-upload="beforeAvatarUpload">
			<img v-if="imageUrl" :src="imageUrl" class="avatar">
			<i v-else class="el-icon-plus avatar-uploader-icon"></i>
		</el-upload>
	</div>
</template>
<script>
	export default {
		data() {
			return {
				imageUrl: ''
			}
		},
		methods: {
			beforeAvatarUpload(file) {
				console.log(file)
                // 使图片显示
				this.imageUrl = URL.createObjectURL(file);
				return false
			}
		}
	}
</script>
<style>
  .avatar-uploader .el-upload {
    border: 1px dashed #d9d9d9;
    border-radius: 6px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
  }
  .avatar-uploader .el-upload:hover {
    border-color: #409EFF;
  }
  .avatar-uploader-icon {
    font-size: 28px;
    color: #8c939d;
    width: 178px;
    height: 178px;
    line-height: 178px;
    text-align: center;
  }
  .avatar {
    width: 178px;
    height: 178px;
    display: block;
  }
</style>

当然我们在对接后台接口时,action属性要设置为 # ,如上图。

此外我们上传时还会发现,该标签会走一遍本地的接口,如下图:

 所以我们要在before-upload事件中添加 return false 去阻止!下面我们看解决以后的效果:

图片可以正常显示!

element的上传图片后不显示照片的功能(原el-upload的修改)

默认的el-upload会上传后,显示照片;

修改功能:上传照片后,如果不符合要求,则给出提示且保持原来的照片(即不上传新照片)

html代码:

 <el-upload  action="#" accept="image/jpeg, image/jpg" ref="upload" :limit="1" :file-list.sync="fileList" :http-request="httpRequest" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload" :on-remove="removeFile">
              <el-button type="success" @click="handleBtnUpload()">上传</el-button>
</el-upload>

有一个http-request方法,在这个方法中判断照片是否符合要求,如果符合,给handleAvatarSuccess这个上传成功事件传输一个新图片的url展示即可;

否则,将原照片的url赋值即可

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue服务器渲染Nuxt学习笔记

    Vue服务器渲染Nuxt学习笔记

    本篇文章主要介绍了Vue服务器渲染Nuxt学习笔记,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • vue3点击出现弹窗后背景变暗且不可操作的实现代码

    vue3点击出现弹窗后背景变暗且不可操作的实现代码

    这篇文章主要介绍了vue3点击出现弹窗后背景变暗且不可操作的实现代码,本文通过实例代码图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 解决Vue在Tomcat8下部署页面不加载的问题

    解决Vue在Tomcat8下部署页面不加载的问题

    今天小编就为大家分享一篇解决Vue在Tomcat8下部署页面不加载的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Vant2移动端Vue组件库问题记录

    Vant2移动端Vue组件库问题记录

    Vant是一套轻量、可靠的移动端组件库,通过Vant可以快速搭建出风格统一的页面,提升开发效率,下面这篇文章主要给大家介绍了关于Vant2移动端Vue组件库问题的相关资料,需要的朋友可以参考下
    2023-01-01
  • Vue组件模板及组件互相引用代码实例

    Vue组件模板及组件互相引用代码实例

    这篇文章主要介绍了Vue组件模板及组件互相引用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Vue组件中slot的用法

    Vue组件中slot的用法

    这篇文章交详细的给大家介绍了vue组件中slot的用法,主要是让组件的可扩展性更强,具体内容详情大家参考下本文
    2018-01-01
  • vue2从数据变化到视图变化之nextTick使用详解

    vue2从数据变化到视图变化之nextTick使用详解

    这篇文章主要为大家介绍了vue2从数据变化到视图变化之nextTick使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • vue项目部署自动清除缓存方式

    vue项目部署自动清除缓存方式

    这篇文章主要介绍了vue项目部署自动清除缓存方式,包括清除文件缓存,清除浏览器 localStorage 缓存方式,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • vue3升级常见问题详细汇总

    vue3升级常见问题详细汇总

    随着vue3 的发布和越来越多项目的使用,之前使用 vue2 的项目也不能拉下,vue2 升级 vue3 迫在眉睫,下面这篇文章主要给大家介绍了关于vue3升级常见问题的相关资料,需要的朋友可以参考下
    2023-03-03
  • vue如何封装自己的Svg图标组件库(svg-sprite-loader)

    vue如何封装自己的Svg图标组件库(svg-sprite-loader)

    这篇文章主要介绍了vue如何封装自己的Svg图标组件库(svg-sprite-loader),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04

最新评论