element-ui 上传图片,图片404
介绍背景:
使用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相关推荐
- element UI上传图片Upload组件使用 图片转base64和fale文件处理 formdata数据格式的应用
element UI上传图片Upload组件使用 & 图片转base64和fale文件处理 & formdata数据格式的应用 1.element UI上传图片Upload组件使用 效 ...
- elementui 上传七牛_用element ui上传图片到七牛踩过的坑
前端上传图片到七牛云的流程 请求后端接口获取上传凭证 请求七牛云地址上传图片到七牛云 上传完毕将获得七牛云返回的图片地址 七牛云地址 说到七牛云地址,奴家真的是一把鼻涕一把泪 刚开始做图片上传的时候, ...
- element ui 上传图片
element ui图片上传 1.template 部分 2. script 部分 3. scss 部分 这玩意很简单,记录一下吧,给入门的小白用下 1.template 部分 <templat ...
- vue element ui 上传图片压缩
1:将压缩js封装起来 /** 图片压缩,默认同比例压缩* @param {Object} fileObj* 图片对象* 回调函数有一个参数,base64的字符串数据*/export functi ...
- Vue+element ui上传图片和视频并回显,点击放大查看和播放
1.上传图片 html代码: <el-uploadaction="#":auto-upload="false":on-change="handl ...
- 实现 element ui 走马灯图片插入与自适应大小
在进行这一模块开发的时候,走马灯组件不知道如何使用,还有大小的自适应.我就用官方给的参考文档来进行修改. 接下来是解决方案: //以下是官网组件代码 <template><el-ca ...
- element UI多图片展示
图片展示效果如下: [使用for循环展示图片和对应图片名称,鼠标选中图片有阴影效果,可以自动换行] 对应图片上使用鼠标点击或鼠标悬浮,图片变大,展示如下: 完整代码 <template>& ...
- element ui 图片加载失败_解决Element UI - el-image 图片初始化加载失败问题
最近使用elementUI的el-image发现经常会出现加载src失败的情况,问题估计就是e-image的src路径一旦初始化加载失败的话就没有异步刷新,(这个地方需要注意过这个问题的大佬解读下源码 ...
- 使用element ui实现上传图片
项目场景: 例如:上传多张,单张图片 问题描述 element ui 上传图片简单 原因分析: 自己使用自己写的方法,耗费时间长,并且功能有错 解决方案: el-upload(:action=&quo ...
- php和ui,php项目中使用element.ui和vue
1.plugins中添加axios,element-ui 2.全局文件下引入 3.页面内使用 1) 容器需要增加id属性 2) 添加script标签,创造vue组件 var app = new Vue ...
最新文章
- 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解
- CUDA学习(七十一)
- (2 sat) hdu 1824
- Java 洛谷 P1307 数字反转
- 成功解决slave无datanode问题
- MSSQL返回季度开始月和某月是第几季度
- springboot-vue简单小项目搭建
- 计算机知识产权结合,计算机知识产权.doc
- 1.java的基础和数据类型
- 详细bugfree使用教程网址
- 如何引用传递参数从一个函数中得到多个返回值
- Python学习之解释器的简单使用
- Ubuntu 20.04开机自启脚本(亲测)
- 如何运行wifi服务器,技术:如何通过wifi进行文件传输?
- thinkphp3.2.3 d方法调用自定义模型_啥?Android 11 不能自定义 Toast 了?
- 线性回归 python_python中的线性回归
- 8、Ndk开发小记一
- IDM Internet Download Manager (IDM)临时文件夹
- 荣耀“打倒华为”第一机
- 新闻 | Mapbox 牵手阿里,飞猪旅行上线六大城市地图功能