JS+HTML5 FileReader實(shí)現(xiàn)文件上傳前本地預(yù)覽功能
HTML5之FileReader的使用
HTML5定義了FileReader作為文件API的重要成員用于讀取文件,根據(jù)W3C的定義,F(xiàn)ileReader接口提供了讀取文件的方法和包含讀取結(jié)果的事件模型。
FileReader的使用方式非常簡(jiǎn)單,可以按照如下步驟創(chuàng)建FileReader對(duì)象并調(diào)用其方法:
1.檢測(cè)瀏覽器對(duì)FileReader的支持
if(window.FileReader) { var fr = new FileReader(); // add your code here } else { alert("Not supported by your browser!"); }
2. 調(diào)用FileReader對(duì)象的方法
FileReader 的實(shí)例擁有 4 個(gè)方法,其中 3 個(gè)用以讀取文件,另一個(gè)用來(lái)中斷讀取。下面的表格列出了這些方法以及他們的參數(shù)和功能,需要注意的是 ,無(wú)論讀取成功或失敗,方法并不會(huì)返回讀取結(jié)果,這一結(jié)果存儲(chǔ)在 result屬性中。
eadAsText:該方法有兩個(gè)參數(shù),其中第二個(gè)參數(shù)是文本的編碼方式,默認(rèn)值為 UTF-8。這個(gè)方法非常容易理解,將文件以文本方式讀取,讀取的結(jié)果即是這個(gè)文本文件中的內(nèi)容。
readAsBinaryString:該方法將文件讀取為二進(jìn)制字符串,通常我們將它傳送到后端,后端可以通過(guò)這段字符串存儲(chǔ)文件。
readAsDataURL:這是例子程序中用到的方法,該方法將文件讀取為一段以 data: 開(kāi)頭的字符串,這段字符串的實(shí)質(zhì)就是 Data URL,Data URL是一種將小文件直接嵌入文檔的方案。這里的小文件通常是指圖像與 html 等格式的文件。
下面通過(guò)一個(gè)上傳圖片預(yù)覽和帶進(jìn)度條上傳來(lái)展示FileReader的使用。
<script type="text/javascript"> function showPreview(source) { var file = source.files[0]; if(window.FileReader) { var fr = new FileReader(); fr.onloadend = function(e) { document.getElementById("portrait").src = e.target.result; }; fr.readAsDataURL(file); } } </script>
<input type="file" name="file" onchange="showPreview(this)" /> <img id="portrait" src="" width="70" height="75">
if(!/image\/\w+/.test(file.type)){ alert("請(qǐng)確保文件為圖像類(lèi)型"); return false; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- javascript結(jié)合fileReader 實(shí)現(xiàn)上傳圖片
- JavaScript通過(guò)filereader接口讀取文件
- JS中利用FileReader實(shí)現(xiàn)上傳圖片前本地預(yù)覽功能
- JS+HTML5 FileReader對(duì)象用法示例
- JavaScript html5利用FileReader實(shí)現(xiàn)上傳功能
- 原生js FileReader對(duì)象實(shí)現(xiàn)圖片上傳本地預(yù)覽效果
- JavaScript使用FileReader實(shí)現(xiàn)圖片上傳預(yù)覽效果
- 基于JavaScript FileReader上傳圖片顯示本地鏈接
- JS中FileReader類(lèi)實(shí)現(xiàn)文件上傳及時(shí)預(yù)覽功能
- JavaScript中的FileReader示例詳解
相關(guān)文章
微信小程序?qū)崿F(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)短信驗(yàn)證碼倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05ES6記錄異步函數(shù)的執(zhí)行時(shí)間詳解
在這篇文章里,我會(huì)實(shí)現(xiàn)一個(gè)可重用的函數(shù)來(lái)處理 JavaScript 延時(shí)異步操作。有需要的小伙伴們可以參考借鑒,下面來(lái)一起看看。2016-08-08一個(gè)類(lèi)似vbscript的round函數(shù)的javascript函數(shù)
同vbscript的Round函數(shù)功能相同,四舍五入保留指定小數(shù)位數(shù)2009-04-04json對(duì)象與數(shù)組以及轉(zhuǎn)換成js對(duì)象的簡(jiǎn)單實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇json對(duì)象與數(shù)組以及轉(zhuǎn)換成js對(duì)象的簡(jiǎn)單實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06webpack4 升級(jí)遷移的實(shí)現(xiàn)
這篇文章主要介紹了webpack 4 升級(jí)遷移的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09JavaScript獲取當(dāng)前運(yùn)行腳本文件所在目錄的方法
這篇文章主要介紹了JavaScript獲取當(dāng)前運(yùn)行腳本文件所在目錄的方法,涉及JavaScript文件目錄操作的相關(guān)技巧,需要的朋友可以參考下2016-02-02javascript不同類(lèi)型數(shù)據(jù)之間的運(yùn)算的轉(zhuǎn)換方法
這篇文章主要介紹了javascript不同類(lèi)型數(shù)據(jù)之間的運(yùn)算的轉(zhuǎn)換方法,需要的朋友可以參考下2014-02-02