本地image文件轉(zhuǎn)換為base64

一、背景需求

1、本地圖片預(yù)覽
2、上傳某些特殊的圖片,后端不存文件,存字符串

二、利用FileReader對象的readAsDataURL()

readAsDataURL 方法會讀取指定的 BlobFile 對象。讀取操作完成的時候,readyState 會變成已完成DONE,并觸發(fā) loadend 事件,同時 result 屬性將包含一個data:URL格式的字符串(base64編碼)以表示所讀取文件的內(nèi)容。

三、本地image文件預(yù)覽實例

<input id="browse" type="file" onchange="previewFiles()" multiple>
<div id="preview"></div>
function previewFiles() {

  var preview = document.querySelector('#preview');
  var files   = document.querySelector('input[type=file]').files;

  function readAndPreview(file) {

    // 確保 `file.name` 符合我們要求的擴(kuò)展名
    if ( /\.(jpe?g|png|gif)$/i.test(file.name) ) {
      var reader = new FileReader();

      reader.addEventListener("load", function () {
        var image = new Image();
        image.height = 100;
        image.title = file.name;
        image.src = this.result;
        preview.appendChild( image );
      }, false);

      reader.readAsDataURL(file);
    }

  }

  if (files) {
    [].forEach.call(files, readAndPreview);
  }

}

參考文獻(xiàn) MDN-FileReader

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ??隨著 HTML5 的出現(xiàn),面向未來 Web 應(yīng)用的 JavaScript API 也得到了極大的發(fā)展。這些 A...
    霜天曉閱讀 1,171評論 0 0
  • 昨天接到一個需求,一個營銷人員做線下活動,想弄一個人臉識別認(rèn)證的功能。剛開始聽,wtf,H5能人臉識別???后來老...
    MrOldK閱讀 6,263評論 2 1
  • 在項目中經(jīng)常遇到需要將本地圖片上傳至服務(wù)端的情況,免不了要本地預(yù)覽選擇的圖片,圖片太大的情況下還需要對圖片進(jìn)行一番...
    學(xué)不可以已閱讀 2,483評論 0 0
  • 一:異步編程背景: JS引擎建立在單線程事件循環(huán)的概念上,js引擎同一時間只能執(zhí)行一段代碼,每當(dāng)一段代碼準(zhǔn)備被執(zhí)行...
    IDO0閱讀 478評論 0 0
  • 剛剛百度了一下,童年到底是指哪個階段,我選擇是自出生到十歲這段時光。 這段時間我正好住在鄉(xiāng)下,有不少好玩的記憶呢。...
    絨布寺閱讀 284評論 0 0

友情鏈接更多精彩內(nèi)容