<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        JS中利用FileReader實現(xiàn)上傳圖片前本地預(yù)覽功能

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:18:22
        文檔

        JS中利用FileReader實現(xiàn)上傳圖片前本地預(yù)覽功能

        JS中利用FileReader實現(xiàn)上傳圖片前本地預(yù)覽功能:引子 平時做圖片上傳預(yù)覽時如果沒有特殊的要求就直接先把圖片傳到后臺去,成功之后拿到URL再渲染到頁面上,這樣做在圖片比較小的時候沒什么問題,大一點的話就會比較慢才能看到預(yù)覽了,而且還產(chǎn)生了垃圾文件,所以比較好的是上傳之前先在本地預(yù)覽一下。
        推薦度:
        導(dǎo)讀JS中利用FileReader實現(xiàn)上傳圖片前本地預(yù)覽功能:引子 平時做圖片上傳預(yù)覽時如果沒有特殊的要求就直接先把圖片傳到后臺去,成功之后拿到URL再渲染到頁面上,這樣做在圖片比較小的時候沒什么問題,大一點的話就會比較慢才能看到預(yù)覽了,而且還產(chǎn)生了垃圾文件,所以比較好的是上傳之前先在本地預(yù)覽一下。

        引子

              平時做圖片上傳預(yù)覽時如果沒有特殊的要求就直接先把圖片傳到后臺去,成功之后拿到URL再渲染到頁面上,這樣做在圖片比較小的時候沒什么問題,大一點的話就會比較慢才能看到預(yù)覽了,而且還產(chǎn)生了垃圾文件,所以比較好的是上傳之前先在本地預(yù)覽一下。

              之前做項找插件的時候就知道純前端可以實現(xiàn)圖片本地預(yù)覽,可今天面試的時候被問到時竟然一臉懵逼,然后竟然無意中就在電腦桌面發(fā)現(xiàn)了實現(xiàn)的demo,然后根據(jù)demo查了一下API,稍微總結(jié)下:

        首先得拿到File對象

              當(dāng)用input標(biāo)簽上傳圖片時event對象中會包含file對象的一個集合

        event.target.files

        核心是FileReader對象

        根據(jù)MDN上的說法:

        FileReader 對象允許Web應(yīng)用程序異步讀取存儲在用戶計算機(jī)上的文件(或原始數(shù)據(jù)緩沖區(qū))的內(nèi)容,使用 File 或 Blob 對象指定要讀取的文件或數(shù)據(jù)。

        首先要作為構(gòu)造函數(shù)得到一個FileReader的實例對象

        var freader = new FileReader();

        利用readAsDataURL()方法讀取指定的內(nèi)容

        freader.readAsDataURL(file);

        最后就是一個事件處理,相當(dāng)于監(jiān)控讀取進(jìn)度,我們這里是當(dāng)讀取完成時渲染圖片,所以用onload

        freader.onload = function(e) { console.log(e); myImg.setAttribute('src', e.target.result); }

        這里架加載完成之后最終得到的是一個base64編碼的src地址,具體為什么下次查清楚了再專門寫篇關(guān)于base64編碼的文章

        完整代碼

        <!DOCTYPE html>
        <html lang="en">
        <head>
         <meta charset="UTF-8">
         <title>Document</title>
        </head>
        <body>
         <form action=""> 
         <input type="file" name="files" id="fileTog" accept="image/*" multiple="multiple" onchange="changImg(event)"> 
         <img alt="暫無圖片" id="myImg" src="" height="100px" width="100px"> 
         </form>
         <script>
         function changImg(e){ 
         var myImg = document.getElementById('myImg');
         for (var i = 0; i < e.target.files.length; i++) { 
         var file = e.target.files[i]; 
         console.log(file); 
         if (!(/^image\/.*$/i.test(file.type))) { 
         continue; //不是圖片 就跳出這一次循環(huán) 
         } 
         //實例化FileReader API 
         var freader = new FileReader(); 
         freader.readAsDataURL(file); 
         freader.onload = function(e) { 
         console.log(e);
         myImg.setAttribute('src', e.target.result); 
         } 
         } 
         }
         </script>
        </body>
        </html>

        后記

              通過這件事就暴露了我學(xué)習(xí)新東西的一個問題,就是查出來看一遍覺得知道了就行了,這種習(xí)慣是特別害人的,以后每當(dāng)有個疑問查出來之后不僅要查是怎么做的,還要了解一下為什么可以這么做,所謂知其然知其所以然。還有就是平時的代碼能用手敲的盡量別復(fù)制,復(fù)制一時是爽了,可要手寫的時候?qū)懖怀鰜硪彩锹爩擂蔚摹?/p>

              今天是來杭州的第三天,面試的第二天,這兩天的面試中暴露出的一個重要問題就是平時太依賴搜索引擎,用腦太少,連一些簡單API就沒記全,前端確實還是有很多東西就是要牢牢記住的,沒什么捷徑可走,這些東西就是基礎(chǔ),沒記住就是基礎(chǔ)差。雖然你并不影響你做出東西來,但會影響開發(fā)效率,技術(shù)要往上走,這個基石必須穩(wěn),加油記吧!

        總結(jié)

        以上所述是小編給大家介紹的JS中利用FileReader實現(xiàn)上傳圖片前本地預(yù)覽,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS中利用FileReader實現(xiàn)上傳圖片前本地預(yù)覽功能

        JS中利用FileReader實現(xiàn)上傳圖片前本地預(yù)覽功能:引子 平時做圖片上傳預(yù)覽時如果沒有特殊的要求就直接先把圖片傳到后臺去,成功之后拿到URL再渲染到頁面上,這樣做在圖片比較小的時候沒什么問題,大一點的話就會比較慢才能看到預(yù)覽了,而且還產(chǎn)生了垃圾文件,所以比較好的是上傳之前先在本地預(yù)覽一下。
        推薦度:
        標(biāo)簽: js 預(yù)覽圖片 filereader
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 蜜桃传媒一区二区亚洲AV| 亚洲av无码片在线观看| 一级做a爰性色毛片免费| 免费高清小黄站在线观看| 成人免费777777被爆出| 一二三四在线观看免费高清中文在线观看 | 亚洲AV无码一区二区一二区| 欧洲精品成人免费视频在线观看| 亚洲国产精品无码久久久| 国产日本一线在线观看免费| xvideos亚洲永久网址| 亚洲精品午夜在线观看| 91精品全国免费观看含羞草| 91亚洲国产成人久久精品网址| 免费v片在线观看视频网站| 亚洲国产91在线| 99精品视频在线观看免费播放| 亚洲高清在线播放| 国产成人精品免费大全| 在线视频免费观看www动漫 | 国产成人高清亚洲一区久久 | 久久av无码专区亚洲av桃花岛| 一级做a爰片性色毛片免费网站| 最新国产AV无码专区亚洲| 国产亚洲视频在线播放大全| 久久久久久久亚洲精品| 日韩大片免费观看视频播放| 亚洲精品国精品久久99热一| 真实国产乱子伦精品免费| 亚洲成在人线aⅴ免费毛片| 在线观看亚洲精品国产| 91精品全国免费观看含羞草 | 亚洲综合无码无在线观看| 亚洲国产精品一区二区第四页| 99精品免费视频| 亚洲综合欧美色五月俺也去| 全部免费毛片在线| 久久精品国产免费观看| 一级毛片免费观看不收费| 亚洲午夜在线一区| 国产91精品一区二区麻豆亚洲|