前端最基礎的就是 HTML+CSS+Javascript
。掌握了這三門技術就算入門,但也僅僅是入門,如今前端開發的定義已經遠遠不止這些。前端小課堂(HTML/CSS/JS
),本着提高技術水平,打牢基礎知識的中心思想,咱們開課啦(每週四)。html
最多見的效果有 圖片上傳預覽、類型檢查、文件大小檢查。前端
File
繼承了 Blob
,能夠用於任意須要 Blob
類型的方法中,好比FileReader()
、URL.createObjectURL()
、XMLHttpRequest.send()
這些方法。
瀏覽器
lastModified
返回當前 File 對象所引用文件最後修改時間,自 UNIX 時間起始值(1970年1月1日 00:00:00 UTC)以來的毫秒數。name
返回當前 File 對象所引用文件的名字。size
返回文件的大小(單位爲字節)。size/1024
爲KB
,size/1024/1024
爲MB
。type
返回文件類型如 "image/png"
file = new File(bits, name[, options]);
微信
ArrayBuffer
,ArrayBufferView
,Blob
,Array
。是 UTF-8 編碼的文件內容。
Blob
類型的數據,只能夠經過FileReader
來讀取。
讀取內容的方法都是異步,若是成功結果會放入result
屬性中。app
readAsArrayBuffer()
以 ArrayBuffer 表示所讀取的文件內容readAsBinaryString()
以 原始二進制 表示所讀取的文件內容readAsDataURL()
以 data: URL格式的 Base64 字符串 表示所讀取文件的內容readAsText()
以 字符串 表示所讀取的文件內容。onabort
讀取操做被中斷時觸發(FileReader.abort()
)onerror
讀取操做發生錯誤時觸發onload
讀取操做完成時觸發filesReader.result
中就有值了onloadstart
讀取操做開始時觸發onloadend
讀取操做結束時(要麼成功,要麼失敗)觸發onprogress
進度Blob 對象表示一個不可變、原始數據的類文件對象。
Blob 表示的不必定是JavaScript原生格式的數據。
File 接口基於Blob,繼承了 blob 的功能並將其擴展使其支持用戶系統上的文件。異步
效果傳送門
常常用在上傳文件中,咱們監聽input
的change
事件。
經過files
屬性來獲取(由於input
能夠經過multiple
來選擇多個文件)函數
粘貼須要監聽 paste
事件,經過獲取事件的Event
對象e.clipboardData.files
來獲取全部的文件對象編碼
拖拽須要監聽drop
事件,並阻止默認事件(不阻止會使用瀏覽器打開),經過獲取事件的Event
對象e.dataTransfer.files
來獲取全部的文件對象加密
input
使用 e.target.files
來獲取e.clipboardData.files
來獲取e.dataTransfer.files
來獲取FileReader
獲取內容是異步的,須要監聽onload
以後拿result