本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持


前端實作表單如果有碰到需要上傳圖片幾乎都會有這需求:預覽。

作法有跟後端搭配,同步 AJAX 上傳後回傳連結套入預覽,或是今天這主題純前端搞定!

使用 JavaScript FileReader API 要注意瀏覽器支援度,尤其是 IE.. ,不過整體來說支援度都還不錯。

FileReader API 瀏覽器支援度

HTML 結構:


Image preview...

JavaScript 程式:

function previewFile() {
  var preview = document.querySelector('img');
  var file    = document.querySelector('input[type=file]').files[0];
  var reader  = new FileReader();

  reader.addEventListener("load", function () {
    preview.src = reader.result;
  }, false);

  if (file) {
    reader.readAsDataURL(file);
  }
}

解讀起來也不難,從輸入的 file 類別捕捉「改變」事件然後實作這 onchange 事件。程式中先是建立一個 FileReader 物件後,再監聽待會檔案的「讀取」事件,都準備好後就使用 FileReader 物件進行讀取,讀取的時候因為使用 readAsDataURL 方法,所以會輸出用 base64 編碼過的字串圖片資料,直接帶入 img 標籤中顯示。

短短幾行就能實作純前端版本的預覽功能,速度也是比較快,省的資料還要先傳輸到後端處理過再回傳的溝通問題,如果瀏覽器不支援可以選擇乾脆不預覽或是與後端打組合技了~


Share:

作者: Chun

WordPress 社群貢獻者、開源社群推廣者。專注於 WordPress 外掛開發、網站效能最佳化、伺服器管理,以及 iDempiere 開源 ERP 導入與客製開發。曾參與 WordCamp Taipei 等社群活動,GitHub Arctic Code Vault Contributor。提供資訊顧問、WordPress 開發教學、主機最佳化與企業 ERP 整合服務。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon