<div class="block-input" style="height: 90px">
<span><i class="red">*</i>上传图片:</span>
<div class="img-area" v-for="(img,index) in imgs" :key="index">
<img :src="img" style="width: 79px;height: 70px;" @click="showBig(img)"/>
<a class="remove-log" @click="removeLog(img)">x</a>
</div> <input type="file" id="pfile" accept="image/gif, image/jpeg,image/png, image/bmp" @change="getPhoto" style="display: none"/>
<button @click="getFile" v-show="isShowBtn" class="button">报表图片</button>
</div>
<div v-if="showImg" class="showImg-box">
<div class="showImg-mask" @click="hiddenImg"></div>
<img :src="chooseImg" style="max-height:400px;max-width: 80%;"/>
</div>
getFile () {
document.getElementById('pfile').click()
},
getPhoto () {
let pfile = document.getElementById('pfile')
let f = pfile.files[0]
let imgVal = pfile.value
let fileName = imgVal.substring(imgVal.lastIndexOf('.') + 1).toLowerCase()
if (fileName !== 'jpg' && fileName !== 'jpeg' && fileName !== 'PNG' && fileName !== 'png' && fileName !== 'bmp' && fileName !== 'gif') {
alert('不支持该格式的文件!')
return false
}
if (f.size > 1024 * 1024 * 10) {
alert('上传图片大小不能大于10M!')
return false
}
var fReader = new FileReader()
fReader.readAsDataURL(f)
fReader.onload = (e) => {
let res = fReader.result
this.imgs.push(res)
if (this.imgs.length === 1) {
this.isShowBtn = false
}
}
},
removeLog (img) {
this.imgs.pop()
let upimgs = this.imgs
for (let i = 0; i < upimgs.length; i++) {
if (img === upimgs[i]) {
upimgs.splice(i, 1)
return
}
}
if (upimgs.length < 1) {
this.isShowBtn = true
this.imgs = []
}
},
showBig (img) {
this.chooseImg = img
this.showImg = true
},
hiddenImg () {
this.showImg = false
},

js 上传图片的更多相关文章

  1. c#使用js上传图片

    前几天朋友说用js上传图片过去遇到点问题,于是自己也想写一个demo这里就把自己挖的坑填了. 话不多说上代码 前台就一个file控件加按钮 <!DOCTYPE html> <html ...

  2. JS 上传图片 + 预览功能(一)

    JS 上传图片 + 预览功能 <body> <input type="file" id="fileimg1" style="disp ...

  3. js上传图片前预览方法(支持预览多个图片)

    运用js实现上传图片前的预览(支持多张图片),实现的例子如下: 1.源码例子: 1)Js脚本页面 <!doctype html> <html> <head> < ...

  4. Node.js 上传图片并保存

    Node.js 上传图片并保存 依赖 package.json 文件 { "name": "demo", "version": " ...

  5. js 上传图片、压缩、旋转

    亲测 <!doctype html> <html> <head> <meta charset="utf-8"> <title& ...

  6. 原生 js 上传图片

    js <!doctype html> <html> <head> <meta charset="utf-8"> <title& ...

  7. Js上传图片并生成缩略图

    Js上传图片并显示缩略图的流程为 Js选择文件->Jquery上传图片->服务器接收图片流->存储图片->返回结果到Js端->显示缩略图 本文上传图片所用的Js库是aja ...

  8. js上传图片到七牛云存储

    项目开发过程中遇到一个需求,运营人员需要上传图片到七牛云,最开始的做法是,后台对接七牛,然后出一个接口,前端调用接口,先将图片传到后台,然后后台再上传七牛云,用的过程中发现,图片小的情况下还好,图片一 ...

  9. js 上传图片,用户自定义截取图片大小

    js 上传图片,用户自定义截取图片大小 js 组件

  10. js上传图片及预览功能

    详细内容请点击 参考了网上一些人代码写了一个上传图片及时预览的功能 <img id="imgTag" style="height: 100px;" alt ...

随机推荐

  1. 3 pyspark学习---sparkContext概述

    1 Tutorial Spark本身是由scala语言编写,为了支持py对spark的支持呢就出现了pyspark.它依然可以通过导入Py4j进行RDDS等操作. 2 sparkContext (1) ...

  2. Makefile研究(二)—— 完整可移植性模板

    转自:http://blog.csdn.net/jundic/article/details/17676461 一直想写一个很全很好移植的Makefile模板,我觉得一个完整makefile 应该包含 ...

  3. HDU - 3345 War Chess 广搜+优先队列

    War chess is hh's favorite game: In this game, there is an N * M battle map, and every player has hi ...

  4. MySQL之避免插入重复数据

    INSERT ignore INTO `$table_name`($field_name) VALUES(),(),(),()"; //若重复数据可以添加,请在对应的数据表字段中添加数据库索 ...

  5. 51nod 1102 【单调栈】

    思路: 对于这个高度往左能延伸最远x,往右能延伸最远y,(x+1+y)*w; 利用单调栈就行了: #include <cstdio> #include <stack> #inc ...

  6. perl 打开二进制文件,并拷贝内容

    实现脚本 use strict ; my $fileName = "/Users/chenfool/Desktop/sequoiadb-大数据平台构建.pdf" ; my $out ...

  7. vmware vSAN 入门

    参考:https://docs.vmware.com/cn/VMware-vSphere/6.5/com.vmware.vsphere.virtualsan.doc/GUID-18F531E9-FF0 ...

  8. JAVA实训总结 :String

    String是特殊的类,与其他基本类型并不相同,是被java封装的类型 String底层组成对象为数组与字典(字符集编码表) String 类型的字符串是存储在JVM特别开辟的字符串常量池中   创建 ...

  9. 原来TextBox打开了MultiLine之后就不能使用AutoComplete了

    private void Form1_Load(object sender, EventArgs e) { // Create the list to use as the custom source ...

  10. Cstring的使用

    https://msdn.microsoft.com/zh-cn/aa315043 1.字符串提取函数,CString::Left.CString::Mid .CString::Right CStri ...