通过文件url地址获取base64;通过图片url地址获取base64;js获取文件的base64

本篇是通过url地址获取文件的base64 如果想要通过File文件获取base64查看这篇

在这里插入图片描述

以下代码可直接复制使用!注意第9行的图片地址更改下

<template><div class="content"><div>获取图片的base64</div><input type="file" id="inputimg" @change="uploadPic($event)" /><img class="img_box" id="img_box" :src="imgsrc" alt=""><div>{{imgsrc}}</div><img class="img2" id="img2" src="@/assets/logo.png" alt=""><el-button @click="getBase64">通过img元素的src获取base64 pdf等一样套路</el-button></div>
</template><script>
function ie9 () {if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE6.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE7.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE8.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE9.0") {return true} else {return false}
}
export default {data () {return {imgsrc: '',}},methods: {// 通过input上传图片uploadPic (event) {console.log(event)if (event.target.files[0].type != 'image/png' && event.target.files[0].type != 'image/jpg' && event.target.files[0].type != 'image/jpeg') {return this.$message.warning('请选择上传图片,格式支持:.png 或 .jpeg 或 .jpeg')}if (ie9()) {this.$message.warning('iE9及以下版本IE浏览器暂不支持该功能,请升级IE浏览器或者用其他浏览器操作。')retrun}//iE9及以下版本IE浏览器暂不支持该功能,请升级IE浏览器或者用其他浏览器操作。let inputDOM = event.targetlet _this = thisvar reader = new FileReader()reader.readAsDataURL(inputDOM.files[0])reader.onload = function (e) {var base = e.target.resultlet res = base.split(',')console.log(1111, e)console.log('方式1:图片的base64码,可以直接赋值给img的src显示图片', base)_this.imgsrc = baseconsole.log()}// inputDOM.value = null //将input置空 否则上传相同文件无反应 (不过置空后 29行的打印 就看不到 event.target.files 文件数据(可以先注释此行看下数据--就是图片文件)   )},getBase1 () {var imgFile = new FileReader()console.log(imgFile)// try {//   // 使用FileReader来把文件读入内存,并且读取文件中的数据。 readAsDataURL方法可以在浏览器主线程中异步访问文件系统,读取文件中的数据,且读取后 result 为 DataURL, DataURL 可直接 赋值给 img.src//   imgFile.readAsDataURL(document.getElementById('img_box').files[0])//   imgFile.onload = function (e) {//     console.log(e)//     var image = new Image()//     image.src = e.target.result //base64数据//     image.onload = function () {//     }//   }// } catch (e) {//   console.log("请上传图片!" + e)// }},getBase64 () {let _this = thisconsole.log(document.getElementById('img2'))console.log(document.getElementById('img2').src) //因为图片的src 默认可能不是base 而是后端返回的其他地址let imgUrl = document.getElementById('img2').srcif (!imgUrl) {return false}window.URL = window.URL || window.webkitURLvar xhr = new XMLHttpRequest()xhr.open("get", imgUrl, true)// 至关重要xhr.responseType = "blob"xhr.onload = function () {if (this.status == 200) {//得到一个blob对象var blob = this.responseconsole.log("blob", blob)// 至关重要let oFileReader = new FileReader()oFileReader.onloadend = e => {// 此处拿到的已经是 base64的图片了let base64 = e.target.resultconsole.log("方式一》》》》》》》》》", base64)_this.imgsrc = base64}oFileReader.readAsDataURL(blob)// //====为了在页面显示图片,可以删除====// var img = document.createElement("img")// img.onload = function (e) {//   window.URL.revokeObjectURL(img.src) // 清除释放// }// let src = window.URL.createObjectURL(blob)// img.src = src// //document.getElementById("container1").appendChild(img);// //====为了在页面显示图片,可以删除====}}xhr.send()},}
}
</script><style>
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FineReport报表和J2EE应用的集成

From: http://www.blogjava.net/fannie/archive/2013/05/08/398985.html FineReport是一个纯Java软件&#xff0c;因此对于J2EE的项目&#xff0c;可以做到无缝集成。 报表服务器并非物理概念的服务器&#xff0c;而是以一个标准的J2EE应用的形式或者jar包的形式提交给程序。应…

vue使用jszip和file-save下载文件并打包;vue前端下载多个文件b并打包;

场景&#xff1a; 一般是后端直接将多个文件打包好&#xff0c;前端调用下载地址下载打包&#xff1b;但是文件太多会导致下载接口时间过长和服务器爆掉&#xff1b;故采用前端先将多个文件下载然后进行打包&#xff1b; 注意点&#xff1a; 1.先获取所有下载的文件路径和包含后…

【BZOJ1085】骑士精神

迭代加深搜索。 剪枝&#xff1a;当满足以下任意一个条件退出&#xff1a; 1.当前已搜到答案时&#xff08;ans!-1||sum0&#xff09; 2.剩余步数1<当前局面与目标局面不同的格子数sum 时&#xff08;因为n步最多改变n1个格子&#xff09; 3.当前步数>当前规定最大步数时…

CH340电路设计注意事项

在前面两篇博客提到了CH340的电路设计以及芯片选型&#xff0c;本文将重点放在使用CH340芯片进行电路设计的一些细节与注意事项。 电压匹配问题 CH340 芯片通过 USB 转换出来的 TTL 串口输出和输入电压是根据芯片供电电压是自适应的。也即&#xff0c;如果芯片是 5V 供电&…

解决 Visual Studio 中代码注释自动折叠的问题

今天突发奇想&#xff0c;打算把存储过程以注释的形式放在代码中进行版本管理&#xff0c;比如下面的代码&#xff1a; 由于存储过程很长&#xff0c;注释占了很多行&#xff0c;严复影响了正常代码的排版与阅读体验。之前也遇到过这样的场景&#xff0c;当时通过手动添加regio…

Newtonsoft.Json高级用法

From: http://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快&#xff0c;体验好。刚好手头上的一个项目服务端接口有性能问题&#xff0c;需要进行优化。在接口多次修改中&#xff0c;实体添加了很多字段用于中间计算或者存储&#xff0c;然后最终用Newtonso…

Android 经典示例,初学者的绝好源码资料

2019独角兽企业重金招聘Python工程师标准>>> Android 经典示例&#xff0c;初学者的绝好源码资料 附上源码&#xff1a; 转载:http://www.adobex.com/android/source/details/00000374.htm 转载于:https://my.oschina.net/androidcode/blog/104696

CH340 Linux驱动使用教程

在官方Linux内核版本中自Kernel2.6以后就默认包含了对CH340/CH341芯片的驱动支持了&#xff0c;但比较遗憾的是该自带驱动版本较老&#xff08;由开源社区开发者提交&#xff09;已不能满足使用需求了&#xff0c;因此我们需要用芯片官网提供的新驱动进行替换链接。 1. 首先去…

h5开发实时预览;真机调试开发;拼接ip的地址直接微信打开或者浏览器打开也可以实时预览

http://192.168.10.135:2277/#/Write1 本地启动vue项目 将地址栏复制 放在微信开发者工具 可以借助微信开发者工具预览 找到自己电脑的ip 也可以电脑输入自己的ip和对应端口号地址进行预览 最后将拼接ip和端口号的地址直接微信打开或者浏览器打开也可以实时预览

python基础2

本节内容 列表、元组操作字符串操作字典操作集合操作文件操作字符编码与转码 一、列表、元组操作 列表是我们最以后最常用的数据类型之一&#xff0c;通过列表可以对数据实现最方便的存储、修改等操作 定义列表 >>> name [hongpeng,21,ops] 通过下标访问列表中的元素…

element-ui嵌套弹框遮罩层解决

:modal-append-to-body“false” :append-to-body“true” 嵌套的 Dialog 必须指定该属性并赋值为 true <template><el-button type"text" click"outerVisible true">点击打开外层 Dialog</el-button><el-dialog title"外层 D…

Linux 串口调试工具汇总

在 linux 系统下进行串口调试或者开发时配合简单易用的串口调试工具那是必不可少。这篇博客对当前用的较多的&#xff0c;且我自己经常用的一些串口工具做一下汇总&#xff0c;大家可以参考一下。 实验环境&#xff1a; OS: Ubuntu16.04 Kernel: 4.4.0 --------------------…

[翻译] effective go 之 Names Semicolons

2019独角兽企业重金招聘Python工程师标准>>> Names Names are as important in Go as in any other language. In some cases they even have semantic effect: for instance, the visibility of a name outside a package is determined by whether its first cha…

75.Android之基本架构

转载&#xff1a;http://www.cnblogs.com/lijunamneg/archive/2013/01/18/2866953.html Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik&#xff0c;并在Dalvik虚拟机上搭建了一个JAVA的application framework&#xff0c;所有的应用程序都是基于JAVA的applicati…

TTL转485电路设计

在 TTL/CMOS 转接半双工 RS485 的电路设计中&#xff0c;由于半双工的特性&#xff0c;需要有信号来控制 485 转接芯片的发送和接收使能端&#xff0c;因此需要具体场景具体分析。 如果是使用 MCU 或者自带发送状态指示脚功能&#xff08;指示当前是否在进行串口发送&#xff0…

flash 动画

浏览着网页不知道该干些什么&#xff0c;突然看到好看的flash动画&#xff0c;其实虽然自己编程序&#xff0c;可是真的觉得很羡慕那些美工同事&#xff0c;做的东东真的很漂亮。看着讲解做着做着&#xff0c;唉&#xff0c;跟人家的对不上了&#xff0c;呵呵&#xff0c;成了另…

USB芯片选型

从 USB 芯片的使用角度来说&#xff0c;USB 系列芯片可以划分为 USB 接口芯片与内置 USB 功能的微控制器。前者对于跨平台和易用性方面比较有优势&#xff0c;无需了解芯片内部工作机制&#xff0c;按照芯片的手册以及官方例程来操作就可以了&#xff0c;而使用平台也比较开放&…

CH340安卓驱动使用教程

使用 CH340/CH341 可以很容易在 Android 平台下实现 USB 转串口的功能&#xff0c;由于 CH340/CH341 是 USB 设备&#xff0c;如果使用手机或者平板来操作该芯片的话&#xff0c;就需要满足以下需求&#xff1a; 1. 需要基于 Android 3.1 及以上的系统 2. Android 设备具有 U…

undefined reference to

关于undefined reference这样的问题&#xff0c;大家其实经常会遇到&#xff0c;在此&#xff0c;我以详细地示例给出常见错误的各种原因以及解决方法&#xff0c;希望对初学者有所帮助。 1. 链接时缺失了相关目标文件&#xff08;.o&#xff09; 测试代码如下&#xff1a; 然…

Android 系统使用USB OTG功能/打开USB Host API功能

步骤一&#xff1a;确定 Android 设备是否支持 USB Host 功能&#xff0c;具体可以通过以下步骤进行确认&#xff1a; 1. 查看手机或平板设备参数&#xff0c;或者直接联系厂家咨询&#xff1b; 2. 使用 UsbHostDiagnostics.APK 安卓应用软件直接进行检测&#xff0c;汉化版软件…