<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
        主站蜘蛛池模板: 亚洲国产综合无码一区| 国产精品成人四虎免费视频| 国产亚洲无线码一区二区| 免费在线观看自拍性爱视频| 可以免费观看一级毛片黄a| 亚洲AV成人一区二区三区观看 | 亚洲人成无码网站在线观看| 国产成人免费高清激情视频| 亚洲日本VA午夜在线电影| 国产精品久久免费视频| 国产精品亚洲片在线花蝴蝶| 亚洲毛片av日韩av无码| 在线免费观看h片| 亚洲福利视频导航| 色播精品免费小视频| 午夜在线a亚洲v天堂网2019| 成年女人免费碰碰视频| 国产亚洲欧美在线观看| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲愉拍一区二区三区| | 亚洲视频网站在线观看| 国产成人精品免费视频大全麻豆| 亚洲91精品麻豆国产系列在线| 在线免费观看色片| 日韩一级片免费观看| 亚洲av午夜成人片精品网站| 免费成人福利视频| 国产午夜亚洲精品不卡电影| 青青草原亚洲视频| 美女内射毛片在线看免费人动物| 亚洲av永久无码精品秋霞电影秋| 国产亚洲美女精品久久久| 2020因为爱你带字幕免费观看全集 | 一区二区三区免费在线观看| 亚洲人成电影在在线观看网色| 欧洲精品成人免费视频在线观看| 色多多www视频在线观看免费| 4444亚洲国产成人精品| 国产免费人成视频在线观看| 无码中文字幕av免费放dvd|