javascript - 图片转Base64

标签 javascript jquery file input base64

<input type="file" id="asd"/>

一旦用户选择(在提交表单之前),我想在 base64 中获取图像

类似的东西:

$(input).on('change',function(){
  var data = $(this).val().base64file(); // it is not a plugin is just an example
  alert(data);
});

我阅读了 File API 和其他东西,我想要一个简单的跨浏览器解决方案(显然不包括 IE6/IE7)

感谢任何帮助。

最佳答案

function readFile() {
  
  if (!this.files || !this.files[0]) return;
    
  const FR = new FileReader();
    
  FR.addEventListener("load", function(evt) {
    document.querySelector("#img").src         = evt.target.result;
    document.querySelector("#b64").textContent = evt.target.result;
  }); 
    
  FR.readAsDataURL(this.files[0]);
  
}

document.querySelector("#inp").addEventListener("change", readFile);
<input id="inp" type="file">
<p id="b64"></p>
<img id="img" height="150">

(P.S:一个base64编码的图像(字符串)是原始图像数据大小的4/3)

Check this answer for multiple images upload .

浏览器支持:http://caniuse.com/#search=file%20api
更多信息在这里:https://developer.mozilla.org/en-US/docs/Web/API/FileReader

关于javascript - 图片转Base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710147/

相关文章:

javascript - AJAX:获取加载的 html 文档的元数据,例如元描述

javascript - 如何保持textarea中的文本格式相同

jquery - 用 jQuery 编写 HTML

java - BufferedReader 不显示文件中的正常字符

javascript - Angular ,Javascript : remove part of file path

javascript - 填写所有输入后启用提交按钮

javascript - JS如何从服务器脚本在客户端存储数据

javascript - 根据逗号分隔字符串中的值附加 HTML

javascript - 无需用户在浏览器中进行交互即可触发输入值的更改

c - 如何创建字节文件?