<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. c++中ctype常用函数总结(isprint isblank..)

    1 判断是否是二十六得字母中其中之一 isalpha(); #include <stdio.h> #include <ctype.h> #include <iostrea ...

  2. UVaLive 3695 City Game (扫描线)

    题意:给定m*n的矩阵,有的是空地有的是墙,找出一个面积最大的子矩阵. 析:如果暴力,一定会超时的.我们可以使用扫描线,up[i][j] 表示从(i, j)向上可以到达的最高高度,left[i][j] ...

  3. 着色语言(Shader Language)

    摘抄"GPU Programming And Cg Language Primer 1rd Edition" 中文名"GPU编程与CG语言之阳春白雪下里巴人" ...

  4. andriod ndk配置

    r7及以后版本不需要再配置cywin ,留影 先在path中配置ndk的环境变量,位置为ndk的根目录,也可在图5中的位置配置环境变量

  5. bzoj 2406: 矩阵【二分+有源汇上下界可行流】

    最大值最小,所以考虑二分 |Σaij-Σbij|<=mid,所以Σbij的上下界就是(Σaij-mid,Σaij+mid) 考虑建有上下界网络,连接(s,i,Σaik-mid,Σaik+mid) ...

  6. [Xcode 实际操作]九、实用进阶-(9)陀螺仪设备的使用

    目录:[Swift]Xcode实际操作 本文将演示陀螺仪设备的使用. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //导入需要用到的C ...

  7. IT兄弟连 JavaWeb教程 Cookie和Session应用结合使用

    一般对于不要求安全的非敏感数据,建议存储在Cookie中! 对于敏感的数据,占用空间较小的,建议存储在Session中! 对于敏感的,较大的数据,存数据库!

  8. 【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)

    Tian Ji -- The Horse Racing 田忌赛马,还是English,要不是看题目,我都被原题整懵了,直接上Chinese吧 Descriptions: 田忌和齐王赛马,他们各有n匹马 ...

  9. 康少带你手撸orm

    orm 什么是orm? 对象关系映射: 一个类映射成一张数据库的表 类的对象映射成数据库中的一条条数据 对象点数据映射成数据库某条记录的某个值 优点:不会写sql语句的程序员也可以很6的操作sql语句 ...

  10. 存储-InfluxDB

    1 TSDB influxDB是一个time series时间序列数据库. 在监控系统的开发中,大体分为采集-存储-可视化三个大类.监控指标有很显著的时间特征数据,一般采用TSDB存储. 在TSDB中 ...