HTML5-FileReader
- 2019 年 10 月 10 日
- 筆記
鏈接:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/onload
readAsBinaryString 已經棄用,該用buffer
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ height: 20px; width: 0%; background-color:red; } </style> </head> <body> <!--展示圖片:--> <!--src:指定路徑(資源定位--url):src請求的是外部文件,一般來說是伺服器資源。意味著它需要向伺服器發送請求,它佔用伺服器資源--> <!--<img src="../images/l1.jpg" alt="">--> <!--需求:即時預覽: 即時:當用戶選擇完圖片之後就立刻進行預覽的處理 >>onchange 預覽:通過文件讀取對象的readAsDataURL()完成--> <form action=""> 文件: <input type="file" name="myFile" id="myFile" onchange="getFileContent();"> <br> <div></div> <input type="submit"> </form> <img src="" alt=""> <script> var div=document.querySelector("div"); /*FileReader:讀取文件內容 * 1.readAsText():讀取文本文件(可以使用Txt打開的文件),返迴文本字元串,默認編碼是UTF-8 * 2.readAsBinaryString():讀取任意類型的文件。返回二進位字元串。這個方法不是用來讀取文件展示給用戶看,而是存儲文件。例如:讀取文件的內容,獲取二進位數據,傳遞給後台,後台接收了數據之後,再將數據存儲 * 3.readAsDataURL():讀取文件獲取一段以data開頭的字元串,這段字元串的本質就是DataURL.DataURL是一種將文件(這個文件一般就是指影像或者能夠嵌入到文檔的文件格式)嵌入到文檔的方案。DataURL是將資源轉換為base64編碼的字元串形式,並且將這些內容直接存儲在url中>>優化網站的載入速度和執行效率。 * abort():中斷讀取*/ function getFileContent(){ /*1.創建文件讀取對象*/ var reader=new FileReader(); /*2.讀取文件,獲取DataURL * 2.1.說明沒有任何的返回值:void:但是讀取完文件之後,它會將讀取的結果存儲在文件讀取對象的result中 * 2.2.需要傳遞一個參數 binary large object:文件(圖片或者其它可以嵌入到文檔的類型) * 2.3:文件存儲在file表單元素的files屬性中,它是一個數組*/ var file=document.querySelector("#myFile").files; reader.readAsDataURL(file[0]); /*獲取數據*/ /*FileReader提供一個完整的事件模型,用來捕獲讀取文件時的狀態 * onabort:讀取文件中斷片時觸發 * onerror:讀取錯誤時觸發 * onload:文件讀取成功完成時觸發 * onloadend:讀取完成時觸發,無論成功還是失敗 * onloadstart:開始讀取時觸發 * onprogress:讀取文件過程中持續觸發*/ reader.onload=function(){ //console.log(reader.result); /*展示*/ document.querySelector("img").src=reader.result; } reader.onprogress=function(e){ var percent= e.loaded/ e.total*100+"%"; div.style.width=percent; } } </script> </body> </html>