1:通過 file控件
2:通過拖拽
3:fileList對象繼承自Blob對象(h5中提供的二進制處理對象)
? ? 一:生成 Blob 對象有兩種方法:一種是使用 Blob 構造函數,另一種是對現有的 Blob 對象使用 slice 方法切出一部分。
blog對象自身只有兩個只讀屬性,size和type。
blob的構造函數(a,b)a參數代表數據,b參數為一個object包含兩個屬性分別為type -- MIME 的類型。endings -- 決定 append() 的數據格式,(數據中的 \n 如何被轉換)可以取值為 "transparent" 或者 "native"(t* 的話不變,n* 的話按操作系統轉換;t* 為默認)
3:filereader對象
FileReader API 才是我們接下去完成一些任務的關鍵。FileReader API 用于讀取文件,即把文件內容讀入內存。它的參數是 File 對象或 Blob 對象。
一:該對象擁有三種方法分別用來讀取不同類型的文件
????readAsText(Blob|File, opt_encoding):返回文本字符串。默認情況下,文本編碼格式是 UTF-8,可以通過可選的格式參數,指定其他編碼格式的文本。
????readAsDataURL(Blob|File):返回一個基于 Base64 編碼的 data-uri 對象。
????readAsArrayBuffer(Blob|File):返回一個 ArrayBuffer 對象。
二:FileReader API 還有一個 abort 方法,用于中止文件上傳。
三:該對象是通過一步的方式讀取文件的
4:url對象
? ? 一:獲取方法
? ??????var objecturl = window.URL.createObjectURL(blob|file);
? ? 二:用途
? ? ? ? 該對象生成的值可以用來作為任意一個擁有url(src/href)屬性的標簽,需要注意的是,即使是同樣的二進制數據,每調用一次 URL.createObjectURL 方法,就會得到一個不一樣的 URL
? ? 三:使得該url失效
? ? ? ? 1:刷新頁面。2:window.URL.revokeObjectURL(objectURL);