介绍背景:

使用element-ui vue,在页面中填写商品信息并保存后,上传商品相关图片。图片存放到阿里云上。如上传两张图片,图片命名为goodsId-01.jpg和goodsId-02.jpg

出现的问题:

新建商品时-图片显示:

商品信息保存成功的那一刻,图片变成:

问题原因:

因为图片默认显示路径下没有图片。所以显示小碎图。

---------------------------------

展示小碎图代码代码→:

<template> 标签中

<div class="container"><div class="form-box"><el-form ref="form" :model="form" label-width="2500px">  <el-row >  <el-col :span="20" >     <span>{{this.form.goodsName}}</span><br><br> <div style="height:50px;font-size:13px;color: #8c939d;"><div>第一张图  http://阿里云存图片路径/{{this.form.goodsId}}-01.jpg<br/></div><br/></div><div style="width:400px;">  // 利用:data="goodsIdStr"传参,用于后台命名,如果命名不需要传参可以省略                     <el-upload class="avatar-uploader" :headers="headerObj" action="/上传访问后台方法路径" :show-file-list="false" :on-success="handleAvatarSuccess" :data="goodsIdStr" :before-upload="beforeAvatarUpload" ><img v-if="indexPicture" :src="indexPicture" class="avatar" style="width:200px;height:200px;border-radius: 6px;border: 4px solid #DFDFDF;"><i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload></div>  </el-col><el-col :span="4">     <span> </span><br><br>          <div style="height:50px; font-size:13px; color:#8c939d; width:500px;"><div>第二张图  http://阿里云存图片路径/{{this.form.goodsId}}-02.jpg</div><br/></div><div style="width:400px;">                       <el-upload class="avatar-uploader" :headers="headerObj" action="/上传访问后台方法路径" :show-file-list="false" :on-success="handleAvatarSuccess1" :data="goodsIdStr" :before-upload="beforeAvatarUpload" ><img v-if="rockOne" :src="rockOne" class="avatar" style="width:200px;height:200px;border-radius: 6px;border: 4px solid #DFDFDF;"><i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload>                          </div>  </el-col></el-row></el-form></div>
</div>

script的create()中

return {if (goodsId != null && goodsId != '' && goodsId !=undefined) {this.img1 = "http://阿里云存图片路径/"+goodsId+"-01.jpg?random="+Math.random();this.img2 = "http://阿里云存图片路径/"+goodsId+"-02.jpg?random="+Math.random();}
},

methods中

handleAvatarSuccess(res, file) {this.img1 = URL.createObjectURL(file.raw);
},
handleAvatarSuccess1(res, file) {this.img2 = URL.createObjectURL(file.raw);
},
// 上传图片
beforeAvatarUpload(file) {                   const isJPG = file.type === 'image/jpeg';const isLt2M = file.size < 71680;this.goodsIdStr.goodsId = this.form.goodsId; // 利用goodsIdStr传参,用于后台命名,如果命名不需要传参可以省略if (!isJPG) {this.$message.error('上传图片只能是 JPG 格式!');}if (!isLt2M) {this.$message.error('上传图片大小不能超过 70KB,请调整清晰度之后再试!');}return isJPG && isLt2M;
},

--------------------

解决:

在<template> 标签中,@error="indexPictureError(indexPicture)",表示出错的时候访问方法,可以直接写默认图片的路径。我是直接给空。

<div class="container"><div class="form-box"><el-form ref="form" :model="form" label-width="2500px">  <el-row >  <el-col :span="20" >     <span>{{this.form.goodsName}}</span><br><br> <div style="height:50px;font-size:13px;color: #8c939d;"><div>第一张图  http://阿里云存图片路径/{{this.form.goodsId}}-01.jpg<br/></div><br/></div><div style="width:400px;">                       <el-upload class="avatar-uploader" :headers="headerObj" action="/上传访问后台方法路径" :show-file-list="false" :on-success="handleAvatarSuccess" :data="goodsIdStr" :before-upload="beforeAvatarUpload" ><img v-if="indexPicture" :src="indexPicture" class="avatar" style="width:200px;height:200px;border-radius: 6px;border: 4px solid #DFDFDF;" @error="indexPictureError(indexPicture)"><i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload></div>  </el-col><el-col :span="4">     <span> </span><br><br>          <div style="height:50px; font-size:13px; color:#8c939d; width:500px;"><div>第二张图  http://阿里云存图片路径/{{this.form.goodsId}}-02.jpg</div><br/></div><div style="width:400px;">                       <el-upload class="avatar-uploader" :headers="headerObj" action="/上传访问后台方法路径" :show-file-list="false" :on-success="handleAvatarSuccess1" :data="goodsIdStr" :before-upload="beforeAvatarUpload" ><img v-if="rockOne" :src="rockOne" class="avatar" style="width:200px;height:200px;border-radius: 6px;border: 4px solid #DFDFDF;" @error="rockOneError(rockOne)"><i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload>                          </div>  </el-col></el-row></el-form></div>
</div>

methods中加入方法:

indexPictureError(indexPicture) {this.indexPicture= '';
},

=================

以下是保存商品,生成goodsId之后,上传一张图片的样式

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

el-upload标签属性

action:访问后台路径

:on-success:上传成功后访问的方法

:data:上传图片往后边传参

:before-upload:上传之前访问的方法(验证图片)

element-ui 上传图片,图片404相关推荐

  1. element UI上传图片Upload组件使用 图片转base64和fale文件处理 formdata数据格式的应用

    element UI上传图片Upload组件使用 & 图片转base64和fale文件处理 & formdata数据格式的应用 1.element UI上传图片Upload组件使用 效 ...

  2. elementui 上传七牛_用element ui上传图片到七牛踩过的坑

    前端上传图片到七牛云的流程 请求后端接口获取上传凭证 请求七牛云地址上传图片到七牛云 上传完毕将获得七牛云返回的图片地址 七牛云地址 说到七牛云地址,奴家真的是一把鼻涕一把泪 刚开始做图片上传的时候, ...

  3. element ui 上传图片

    element ui图片上传 1.template 部分 2. script 部分 3. scss 部分 这玩意很简单,记录一下吧,给入门的小白用下 1.template 部分 <templat ...

  4. vue element ui 上传图片压缩

    1:将压缩js封装起来 ​ /** 图片压缩,默认同比例压缩* @param {Object} fileObj* 图片对象* 回调函数有一个参数,base64的字符串数据*/export functi ...

  5. Vue+element ui上传图片和视频并回显,点击放大查看和播放

    1.上传图片 html代码: <el-uploadaction="#":auto-upload="false":on-change="handl ...

  6. 实现 element ui 走马灯图片插入与自适应大小

    在进行这一模块开发的时候,走马灯组件不知道如何使用,还有大小的自适应.我就用官方给的参考文档来进行修改. 接下来是解决方案: //以下是官网组件代码 <template><el-ca ...

  7. element UI多图片展示

    图片展示效果如下: [使用for循环展示图片和对应图片名称,鼠标选中图片有阴影效果,可以自动换行] 对应图片上使用鼠标点击或鼠标悬浮,图片变大,展示如下: 完整代码 <template>& ...

  8. element ui 图片加载失败_解决Element UI - el-image 图片初始化加载失败问题

    最近使用elementUI的el-image发现经常会出现加载src失败的情况,问题估计就是e-image的src路径一旦初始化加载失败的话就没有异步刷新,(这个地方需要注意过这个问题的大佬解读下源码 ...

  9. 使用element ui实现上传图片

    项目场景: 例如:上传多张,单张图片 问题描述 element ui 上传图片简单 原因分析: 自己使用自己写的方法,耗费时间长,并且功能有错 解决方案: el-upload(:action=&quo ...

  10. php和ui,php项目中使用element.ui和vue

    1.plugins中添加axios,element-ui 2.全局文件下引入 3.页面内使用 1) 容器需要增加id属性 2) 添加script标签,创造vue组件 var app = new Vue ...

最新文章

  1. 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解
  2. CUDA学习(七十一)
  3. (2 sat) hdu 1824
  4. Java 洛谷 P1307 数字反转
  5. 成功解决slave无datanode问题
  6. MSSQL返回季度开始月和某月是第几季度
  7. springboot-vue简单小项目搭建
  8. 计算机知识产权结合,计算机知识产权.doc
  9. 1.java的基础和数据类型
  10. 详细bugfree使用教程网址
  11. 如何引用传递参数从一个函数中得到多个返回值
  12. Python学习之解释器的简单使用
  13. Ubuntu 20.04开机自启脚本(亲测)
  14. 如何运行wifi服务器,技术:如何通过wifi进行文件传输?
  15. thinkphp3.2.3 d方法调用自定义模型_啥?Android 11 不能自定义 Toast 了?
  16. 线性回归 python_python中的线性回归
  17. 8、Ndk开发小记一
  18. IDM Internet Download Manager (IDM)临时文件夹
  19. 荣耀“打倒华为”第一机
  20. 新闻 | Mapbox 牵手阿里,飞猪旅行上线六大城市地图功能

热门文章

  1. 腾讯企鹅辅导 H5 性能极致优化总结
  2. DEV05 GBase 8a MPP Cluster 数据库性能优化
  3. 17 张程序员专属壁纸(使用频率很高)
  4. Valley Blue Pasture《谷蓝尼牧场》签到可领大红包
  5. 酷派S1android版本,酷派S1太烂了?NO!阉割降频版骁龙821依旧给力
  6. 计算机辅助测试图示,计算机基础知识:计算机辅助测试
  7. 穷爸爸 富爸爸(Rich dad , Poor dad ) 读书笔记(第一课lesson 1)
  8. 内网穿透工具Ngrok
  9. 进一步解读自主可控云CAD:CrownCAD
  10. 笔记本电脑坏了,昨天拿到鼎好去修。