純前端實(shí)現(xiàn) JS本地預(yù)覽圖片+JS轉(zhuǎn)換base64

前端JS上傳圖片,并預(yù)覽圖片,免后端

HTML代碼

<!-- 上傳標(biāo)簽 -->
<input type="file" id="file"/>


<!-- 圖片標(biāo)簽 - 用于預(yù)覽 -->
<img id="previewImg"/>
JavaScript代碼

// 根據(jù)ID獲取file內(nèi)容
var file = document.getElementById('file').files[0]

// 創(chuàng)建文件讀取對(duì)象
var read = new FileReader()

// 讀取成base64
var img64 = read.readAsDataURL(file)

// 賦值給圖片即可
document.getElementById('previewImg').src = img64

// ts 函數(shù)
const getBase64 = (img: any, callback: any) => {
    const reader = new FileReader();
    reader.readAsDataURL(img);
    reader.addEventListener('load', () => callback(reader.result));
  };
  1. 樣式問題自己調(diào)整即可,只是記錄解決方案
  2. 關(guān)于File如何自定義樣式,一般是將file 的padding-top放大,然后外層div固定高度再overflow,就看不到原始標(biāo)簽的"請(qǐng)上傳文件"了,然后內(nèi)部放一個(gè)標(biāo)簽自定義文字即可,當(dāng)然file層級(jí)要在最上面。否則無法點(diǎn)擊觸發(fā)
  3. 關(guān)于老版本兼容,請(qǐng)參考鏈接中的onTry函數(shù)。(https://github.com/Pszz/CanvasFilter/blob/master/src/App.vue
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,774評(píng)論 1 45
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,096評(píng)論 1 92
  • 概述 在網(wǎng)易云課堂學(xué)習(xí)李南江老師的《從零玩轉(zhuǎn)HTML5前端+跨平臺(tái)開發(fā)》時(shí),所整理的筆記。筆記內(nèi)容為根據(jù)個(gè)人需求所...
    墨荀閱讀 2,465評(píng)論 0 7
  • day01-_起源和結(jié)構(gòu) 結(jié)構(gòu):Xhtml xml 表現(xiàn):CSS 行為:DOM ECMAScript 以上都屬于W...
    Sakura_明妃閱讀 1,319評(píng)論 0 1
  • 前端開發(fā)面試題 面試題目: 根據(jù)你的等級(jí)和職位的變化,入門級(jí)到專家級(jí),廣度和深度都會(huì)有所增加。 題目類型: 理論知...
    怡寶丶閱讀 2,670評(píng)論 0 7

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