我们知道,img的src属性或background的url属性,可以通过被赋值为图片网络地址或base64的方式显示图片。
在文件上传中,我们一般会先将本地文件上传到服务器,上传成功后,由后台返回图片的网络地址再在前端显示。
通过FileReaderreadAsDataURL方法,我们可以不经过后台,直接将本地图片显示在页面上。这样做可以减少前后端频繁的交互过程,减少服务器端无用的图片资源,代码如下:

iview官网查看

data(){return{iconFileSrc: null, // 展示再页面上的图片路径editFormData: {iconFile: null // 传给后台的图片路径}}}
      <Card title="图片素材" class="mt10"><FormItem label="应用图标" prop="iconFile"><div v-if="iconFileSrc" class="upload-icon"><img height="100%" :src="iconFileSrc"></div><Uploadname="iconFile"  // 上传的文件字段名type="drag" // 上传控件的类型,可选值为 select(点击选择),drag(支持拖拽)v-model="editFormData.iconFile"style="display:inline-block;width:58px;":max-size="200" // 文件大小限制,单位 kbaccept=".png" //接受上传的文件类型:format="['png']" //支持的文件类型,与 accept 不同的是,format 是识别文件的后缀名,accept 为 input 标签原生的 accept 属性,会在选择文件时过滤,可以两者结合使用:before-upload="iconFileBeforeUpload" // 上传文件之前的钩子,参数为上传的文件,若返回 false 或者 Promise 则停止上传action="//"  // 上传的地址,必填><div v-if="!editFormData.iconFile" style="width: 58px;height:58px;line-height:  58px;"><Icontype="md-add"size="20"></Icon></div><span v-else class="cp">更换</span></Upload><div class="tips">请上传200K以内的PNG格式图片,尺寸为512X512</div></FormItem></Card>
  // 应用图标上传前iconFileBeforeUpload (file) {console.log(file)if (file.type !== 'image/png') {return this.$Notice.warning({title: '上传格式错误',desc: '上传200K以内的PNG格式图片,尺寸为512X512'})}if (file.size > 204800) {return this.$Notice.warning({title: '文件超出限制大小',desc: '上传200K以内的PNG格式图片,尺寸为512X512'})}this.editFormData.iconFile = file// 展示的时候 使用base64进行展示  传入数据库的时候 还是使用原始的file 并进行forData转化const reader = new FileReader()reader.readAsDataURL(file) // 读出 base64reader.onload = () => {// 图片的 base64 格式, 可以直接当成 img 的 src 属性值const _base64 = reader.resultthis.iconFileSrc = _base64}return false},

file

对于图片上传,我们也可以先将图片转换为base64进行传输,此时由于传输的图片内容就是一段字符串,故上传接口可以当做普通post接口处理,当图片传输到后台后,可以在转换为文件实体存储。
当然,考虑到base64转换效率及其本身的大小,本方法还是适合于上传内容简单或所占内存较小的文件。
参考:https://www.cnblogs.com/hhhyaaon/p/5929492.html

JavaScript通过 new FileReader() 获取图片base64 无组件上传图片相关推荐

  1. Java通过图片url地址获取图片base64位字符串的两种方式

    工作中遇到通过图片的url获取图片base64位的需求.一开始是用网上的方法,通过工具类Toolkit,虽然实现的代码比较简短,不过偶尔会遇到图片转成base64位不正确的情况,至今不知道为啥. 之后 ...

  2. 微信chooseImage,getLocalImgData调取相机拍照,获取图片base64

    <a href="javascript:void(0)" onclick="use_wx_camera()">调取微信拍照</a> &l ...

  3. html5无组件上传,ASP上传漏洞 无组件上传图片文件(转载)

    对于上传漏洞的查找,仍是从源文件入手,目标有两个,一个是FilePath(文件路径),另一个则是FileName(文件名称). 一.FilePath 说到FilePath,有些朋友可能感到陌生,但要提 ...

  4. asp html 生成图片,asp无组件上传图片并生成缩略图

    先创建一文件夹,并创建虚拟目录或站长点. 1.增加上传页xAdd.html 无组件上传 "POST"name="myform"action="xSav ...

  5. 不同浏览器获取图片base64字符串

    在上传图片后进行预览的时候,在Chrome,Foxfire,360等主流浏览器中都可以使用FileReader对象来获取base64来预览图片,但是在IE10以下的版本就爱莫能助了但是有解决办法: / ...

  6. RIDE:获取图片base64

    python脚本中: import base64filepath=r'D:\图片集\0\7102528551.jpg' f=open(filepath, 'rb') print(f) ls_f = b ...

  7. 人脸检测,身份证扫描调三方接口获取图片base64路径转file,存入数据库(Vue)

    <template> <div class="PersonInfoAuthPage"> <Header headerTitle="个人信息认 ...

  8. asp无组件上传图片 动态保存文件名 upload.inc逐句翻译

    先上解释代码,后面跟上实用inc代码及调用方法<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT> dimupfileStreamClass upload '类名 ...

  9. html 无组件上传图片,无组件上传图片到数据库中,最完整解决方案

    ::::::: 此程序属扬子原创 :::::::::::::::::: :::::: 在sql2000,2000s中测试通过:::::::: :::::::联系我:qq:21112856,email: ...

最新文章

  1. Kimera:一个基于度量语义的SLAM开源库
  2. 如何改变java中的库包_如何在Java / Android模块化库中使两个相互独立的包相互独立?...
  3. python封装api linux_python Socket编程-python API 与 Linux Socket API之间的关系
  4. jqury-zoom的一个例子
  5. gridview排序加箭头(二)
  6. 深入理解分布式系统原理与设计
  7. Arcgis Javascript那些事儿(一)--Arcgis server发布feature access服务
  8. 关于 Visual Studio 2017 ,或2019 ,Installer 没检测到已安装的程序.以及C++ 创建项目失败...
  9. robotframework 新建UI自动化测试用例实例一(2)
  10. Comparable与Comparator对象比较
  11. 微弱信号检测matlab代码,微弱信号检测实验报告.doc
  12. STM8单片机烧录程序
  13. linux or msys2设置网络代理
  14. 第四章 sysrepo共享内存机制
  15. apache jmeter 压力测试工具
  16. 诊所信息管理系统C语言课程设计
  17. 除了四大传统OA软件商,国内还有这些优秀的OA协同产品
  18. Swift之高德地图的调用
  19. 5分钟玩转Axure之快速创建Chart图表
  20. c语言图像系统,JPEG2000核心编码C语言实现及图像验证系统设计

热门文章

  1. .net学习榜样的博客
  2. 未来数据领域的珠穆朗玛峰之中文自然语言处理
  3. wordcloud用来制作中文词云
  4. 无偏PU learning简介
  5. 机器学习模型在携程海外酒店推荐场景中的应用
  6. 使用Spark/Java读取已开启Kerberos认证的HBase
  7. python中的is判断引用的对象是否一致,==判断值是否相等
  8. 九章算术卷第五 商功
  9. 开源数据访问组件Smark.Data 1.7新增功能
  10. 卸载Internet Explorer 7 Beta 2 Preview引起原来的IE无法正常使用