效果

视图层


<el-form-item class="file-box"
label="微信分享图片url链接"
prop="wx_share_img_url">
<input ref="shareFile"
class="file-item wx-file-item"
type="file"
@change="changeImg" >
<div class="el-input__inner">
{{ form.wx_share_img_url }}
<el-button size="small"
type="primary">点击上传</el-button>
</div>
</el-form-item>
<el-form-item class="file-box"
label="额外参数(目前用于app活动页图片地)"
prop="extra">
<input ref="extraFile"
class="file-item"
type="file"
@change="changeImg" >
<div class="el-input__inner">
{{ form.extra }}
<el-button size="small"
type="primary">点击上传</el-button>
</div>
<!-- <img ref="imgzs"
src="" > -->
</el-form-item>

method

    // 上传图片
changeImg(e) {
console.log(e, '')
var that = this
var file = e.target.files[] || e.dataTransfer.files[]
var fileSize = file.size || file.fileSize
var fileName = file.name
var len = e.target.classList.length
console.log(file.size, '')
if (file.name.lastIndexOf('.') === -) {
this.$message.info('路径不正确')
return false
}
var AllImgExt = '.jpg|.jpeg|.gif|.bmp|.png|.swf'
var extName = file.name.substring(file.name.lastIndexOf('.')).toLowerCase()
if (AllImgExt.indexOf(extName + '|') === -) {
this.$message.info('非法图片格式')
return false
}
if (fileSize < ) {
if (window.FileReader) {
var reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = (e) => {
console.log(e.target + 'img')
console.log(e.target.result + 'img')
// that.$refs.imgzs.src = e.target.result
if (len > ) {
that.form.wx_share_img_url = fileName
that.formData.set('share_img', file)
console.log(file, 'share_img')
// that.formData.set('share_img', e.target.result)
} else {
console.log(file, 'list_img')
that.form.extra = fileName
that.formData.set('list_img', file)
}
$('#imgshow').get(0).src = e.target.result;
that.isUploadImg = true
}
}
} else {
this.$message.info('图片大小超过限制')
return false
}
}

注意:多个文件上传图片时使用class的长度进行判断

使用new FileReader()对象是为了实现图片预览功能

,如果需要传图片的路径给后端是用  e.target.result 读取,这个读取出来的值是base64位可以直接在页面上渲染预览图片,如果是后端需要原生的值就是传

e.target.files[0] || e.dataTransfer.files[0]  具体见后台活动列表编辑

vue中原生file上传图片的更多相关文章

  1. vue <input type="file">上传图片、预览、删除

    使用原生<input type="file">上传图片.预览.删除:multiple实现可上传多张 参数名 类型 说明 fileTypes Array 文件类型, 默认 ...

  2. 原生js中获取this与鼠标对象以及vue中默认的鼠标对象参数

    1.通过原生js获取this对象 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  3. Vue中如何监听组件的原生事件

    在首页开发中,右下角有一个返回顶部的小箭头,将它单独封装成一个BackTop组件,但是它何时出现需要依赖于首页的滑动,即另外一个Scroll组件.如果直接在BackTop组件里面监听,则需要通过thi ...

  4. jquery解决file上传图片+图片预览

    js解决file上传图片+图片预览 demo案例中代码为js原生控制,可以根据项目的需求修改为jquery操作 <!DOCTYPE html><html lang="en& ...

  5. .NET压缩图片保存 .NET CORE WebApi Post跨域提交 C# Debug和release判断用法 tofixed方法 四舍五入 (function($){})(jQuery); 使用VUE+iView+.Net Core上传图片

    .NET压缩图片保存   需求: 需要将用户后买的图片批量下载打包压缩,并且分不同的文件夹(因:购买了多个用户的图片情况) 文章中用到了一个第三方的类库,Nuget下载 SharpZipLib 目前用 ...

  6. 使用VUE+iView+.Net Core上传图片

    我们直接进入主题,使用VS2017开发工具 首先要创建一个WebApi项目,创建完之后,在wwwroot文件下,创建一个文件夹 名字可以随意起  我这里呢就叫做Upload了 ok ! 然后我们再创建 ...

  7. vue中使用axios post上传头像/图片并实时显示到页面

    在前端开发中,为了更好的用户体验,在头像上传时会先将图片显示到页面然后点击保存按钮 完成图片的上传成功 代码部分有参考他人的写法. html代码:   <div id="myPhoto ...

  8. vue中使用Ajax(axios)、vue函数中this指向问题

    Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求.Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中. axios中文文档库:http ...

  9. vue中的文件上传和下载

    文件上传 vue中的文件上传主要分为两步:前台获取到文件和提交到后台 获取文件 前台获取文件,主要是采用input框来实现 <el-dialog :title="addName&quo ...

随机推荐

  1. Java项目中,如何限制每个用户访问接口的次数

    转自:https://blog.csdn.net/qq_30947533/article/details/78844709 方法1:数据访问量大的话 用redis来做,用户在调用短信接口时,先根据用户 ...

  2. script ajax / XHR / XMLHttpRequest

    s 利用XHR 调试发送form data表单数据,F5键刷新form表单URL ,http请求地址,获取token,提交. 如:http://pcp.cns*****.com/spcp-web/vm ...

  3. Kubernetes基础概念及架构概述

    Kubernetes 架构 Kubernetes是一个全新的基于容器技术的分布式架构,虽然Kubernetes只有三年,但它是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要发展成果.确切的 ...

  4. Kafka技术内幕 读书笔记之(五) 协调者——消费者加入消费组

    消费者客户端轮询的3个步骤:发送拉取请求,客户端轮询,获取拉取结果 . 消费者在发送拉取请求之前,必须首先满足下面的两个条件.- 确保消费者已经连接协调者, 即找到服务端中管理这个消费者的协调者节点 ...

  5. HDU 1019(求最小公倍数 **)

    题意是求一组数的最小公倍数,不用存,每次输入即刻处理即可. 补充一点:两个自然数的最大公约数与它们的最小公倍数的乘积等于这两个数的乘积. 代码如下: #include <bits/stdc++. ...

  6. Structured Streaming + Kafka Integration Guide 结构化流+Kafka集成指南 (Kafka broker version 0.10.0 or higher)

    用于Kafka 0.10的结构化流集成从Kafka读取数据并将数据写入到Kafka. 1. Linking 对于使用SBT/Maven项目定义的Scala/Java应用程序,用以下工件artifact ...

  7. nohup命令执行退出后进程退出

    nohup命令常常用于让进程在后台执行.但是如果仅仅是执行: nohup command & 之后直接关闭终端的话,会发现之前已经启动进程也会退出.解决办法:nohup command &am ...

  8. oracle 重建索引以及导出所有的索引脚本(可以解决还原数据库文件时先还原数据,在重新用脚本创建索引)

    导出数据库备份文件 1. 备份服务器数据,采用并行方式,加快备份速度(文件日期根据具体操作日期修改) expdp jhpt/XXXX directory=databackup dumpfile=dpf ...

  9. matplotlib-2D绘图库-面向对象

    个人理解:plt--画本    figure--产生画纸 子图 import numpy as np import matplotlib.pyplot as plt #解决能显示中文 plt.rcPa ...

  10. [C++]猜数字游戏的提示(Master-Mind Hints,UVa340)

    [本博文非博主原创,思路与题目均摘自 刘汝佳<算法竞赛与入门经典(第2版)>] Question 例题3-4 猜数字游戏的提示(Master-Mind Hints,UVa340) 实现一个 ...