element中upload单图片转base64后添加进数组,请求接口
//先上代码
<template>
<!-- data绑定的参数
getuploadloge: [
{
url: '',
name: ''
}
],
-->
<!-- 编辑操作模板
this.uploadstatue = false
//在父类给该upload组件添加v-if事件
this.$nextTick(() => {
this.uploadstatue = true
})
this.form = res.data
//给upload传参
this.getuploadloge = [
{
name: res.data.Name,
url: res.data.Logo,
status: 0
}
] -->
<!-- 新增模板
this.uploadstatue = false
//在父类给该upload组件添加v-if事件
this.$nextTick(() => {
this.uploadstatue = true
})
//给upload传参
this.getuploadloge[0].name = ''
this.getuploadloge[0].url = ''
this.getuploadloge[0].status = 1
-->
<!--上边的添加事件是在父类引用改子类的标签里加v-if事件,来保证组件从新加载,否则组件不会刷新-->
<div>
<p >
只能上传jpg/png文件,且不超过1024kb
</p>
<el-upload
action="#"
:auto-upload="false"
:file-list="fileList"
:multiple = "false"
:limit="1"
accept=".jpg,.jpeg,.png"
list-type="picture-card"
:class="{hide:hideUpload}"
:on-change="maximg"
:before-upload="beforeAvatarUpload"
:on-remove="handleRemove">
<!-- <img :src="backimg"> -->
<i class="el-icon-plus"></i>
</el-upload>
</div> </template> <script>
export default {
props: ['getuploadloge'],
data() {
return {
hideUpload: false, //隐藏添加窗口
dialogVisible: false, //照片模态框
fileList: [], //图片数组
uploaddate: [], //子组件数组
backimg: '../../../static/images/bank_upload_logo.png'
}
},
mounted() {
//获取图片数据
this.getupload()
},
methods: {
//获取文件数据
getupload() {
this.uploaddate = Object.assign(this.getuploadloge)
if (this.uploaddate[0].status === 1) {
this.fileList.length = 0
this.handleRemove('', this.fileList)
} else {
if (this.uploaddate[0].name) {
this.fileList = this.uploaddate
this.hideUpload = this.fileList.length >= 1
}
}
},
//文件列表移除文件时的钩子
handleRemove(file, fileList) {
if ((fileList.length = 0)) {
this.hideUpload = true
} else {
this.hideUpload = fileList.length >= 1
this.$emit('uploaddate', '')
}
},
handlePictureCardPreview(file) {},
//文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用
maximg(file, fileList) {
const isIMAGE = file.name.substring(file.name.lastIndexOf('.') + 1)
const isLt1M = file.size / 1024 / 1024
if (isIMAGE !== 'jpg' && isIMAGE !== 'png' && isIMAGE !== 'jpeg') {
this.$message.error('上传文件只能是jpg和png格式!')
this.fileList.length = 0
this.handleRemove(file, fileList)
}
if (isLt1M > 1) {
this.$message.error('上传文件大小不能超过 1MB!')
this.fileList.length = 0
this.handleRemove(file, fileList)
}
this.hideUpload = fileList.length >= 1
let reader = new FileReader() //html5读文件
//转BASE64
reader.readAsDataURL(file.raw)
reader.onload = e => {
this.uploaddate = e.target.result
//读取完毕后调用接口
this.$emit('uploaddate', this.uploaddate)
} return isIMAGE && isLt1M
},
beforeAvatarUpload(file, fileList) {
// console.log('123465789')
}
},
name: 'Upload'
}
</script>
<style>
.hide .el-upload--picture-card {
display: none;
}
</style>
<style scoped>
</style>
//因为我的dialog写的公用组件,需要的可以看下我的其他文章.
//因为我的新增与修改是一个模态框,所以判断那一块可以自行修改.
//file-list绑定的数组格式是:File-list:[{name:名字,url:地址}]
//只要符合这个数组就可以回显.
//其中的属性代表什么官网里有详细解释,在这里就不一一解释了.
//说几个特殊点的.accept属性是点击上传按钮后,弹出的图片选择框的默认后缀.目的是为了加载迅速,如果不加此属性,点击后页面文件过多的情况下会加载很慢.
//注意:accept后面跟的不是验证,accept后面跟的不是验证,accept后面跟的不是验证,如果需要验证请在方法中写校验规则
element中upload单图片转base64后添加进数组,请求接口的更多相关文章
- Angular中$watch实现控件改变后实时发送HTTP请求
实现代码如下 <!DOCTYPE html> <html ng-app="myServiceApp"> <head> <meta char ...
- java消除整型数组中重复的元素,排序后输出新数组
法一: import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(S ...
- 分离与继承的思想实现图片上传后的预览功能:ImageUploadView
本文要介绍的是网页中常见的图片上传后直接在页面生成小图预览的实现思路,考虑到该功能有一定的适用性,于是把相关的逻辑封装成了一个ImageUploadView组件,实际使用效果可查看下一段的git效果图 ...
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
Visual Studio 2017中使用正则修改部分内容 最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...
- Vue项目打包发布后CSS中的背景图片不显示
相信有很多同学在学习vue的刚开始都遇到过项目打包发布后发现CSS中的背景图片不显示,具体如何解决只需要更改bind的配置即可 修改 build/utils.js 中的 generateLoaders ...
- 【PHP】图片转换为base64,经过post传输后‘+’会变成 ‘空格’
图片转换为base64,经过post传输后‘+’会变成 ‘空格’, 需要用PHP 处理一下 $str= $_POST['img_data']; $str= str_replace(' ','+',$s ...
- 在vue项目中,解决如何在element表格中循环出图片列!
效果图: 1,vue项目环境 2,引入element-ui组件 3,制作表格 此处省去制作循环表格数据那步,想看的可以找回我的博客:element中的表格处理:循环出表格数据 今天想在表格出循环出一列 ...
- C#中图片转换为Base64编码,Base64编码转换为图片
#region 图片转为base64编码的字符串 public string ImgToBase64String(string Imagefilename) { try { Bitmap bmp = ...
- JS上传图片-通过FileReader获取图片的base64
下面文章,我想要的是: FileReader这个对象,可以借助FileReader来获取上传图片的base64,就可以在客户端显示该图片了.同时,还可以把该图片的base64发送到服务端,保存起来. ...
随机推荐
- FatMouse's Speed--hdu1160(dp+输出路径)
Problem Description FatMouse believes that the fatter a mouse is, the faster it runs. To disprove th ...
- java多线程编程01---------基本概念
一. java多线程编程基本概念--------基本概念 java多线程可以说是java基础中相对较难的部分,尤其是对于小白,次一系列文章的将会对多线程编程及其原理进行介绍,希望对正在多线程中碰壁的小 ...
- Java8初体验(二)Stream语法详解(转)
本文转自http://ifeve.com/stream/ Java8初体验(二)Stream语法详解 感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com上篇文章Java8初体验(一 ...
- Activiti-5.3工作流引擎-源码解析(流程文档解析)
前面我们通过BPMN20.xsd和Activiti自定义的XML Schema文件初步了解了业务流程模型的定义,那么现在我们来了解一下流程文档的解析过程,这个过程主要是通过代码解析来完成. 代码解析过 ...
- 《Spring设计思想》AOP设计基本原理
0.前言 Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Sp ...
- 聚合类新闻client产品功能点详情分析
产品功能点 功能 今日头条 百度新闻 鲜果 ZAKER 媒体订阅 × √ ★ ★ 个性化内容推荐 ★ √ × × 个性化订阅(RSS) × × ★ × 视频新闻 × × × × 评论盖楼 √ √ √ ...
- Robotframework集成jenkins执行用例
Robotframework+jenkins配置 假设我们完成了一个模块的用例设计,可是想晚上9点或凌晨运行,这时候该怎么实现呢?jenkins可以很好解决我们的疑难. Jenkins安装 这里简单说 ...
- HDU4763 Theme Section 【KMP】
Theme Section Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- 安装PyQt5和Eric6
安装官方的指引,安装起来本来是非常简单的,但是我前后折腾了两天,甚至连Eric得源码都去调试都没成功.过程如下: 在PyQt5的官网链接中下载轮子 PyQt5-5.7.1-5.7.1-cp34.cp3 ...
- IDEA 使用方法快捷键
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ ...