html結構:
<css樣式:div
id="fileimage"
>
div>
<
input
type
="file"
value
="upload"
id="fileinput"
>
<
p id
="fileinfo"
>
p>
#fileimage#fileinfojs**:
var fileinput = document.getelementbyid("fileinput"),fileimage = document.getelementbyid("fileimage"),
fileinfo = document.getelementbyid("fileinfo");
//監聽change事件
fileinput.addeventlistener('change',function
()
//獲取file的引用
var file = fileinput.files[0];
//獲取file資訊
fileinfo.innerhtml = '檔案'+file.name+'
'+ '大小'+file.size+'
'+ '修改'+file.lastmodifieddate+'
';
if(file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif')
//讀取檔案
var reader = new
filereader();
reader.onload = function
(e)
//以dataurl的形式讀取檔案:
reader.readasdataurl(file);
});
選擇檔案之後可以看到檔案的名稱、大小、修改的時間,也可以預覽。以dataurl的形式讀取到的檔案是乙個字串,類似於data:image/jpeg;base64,/9j/4aaqsk...(base64編碼)...
,常用於設定影象。如果需要伺服器端處理,把字串base64,
後面的字元傳送給伺服器並用base64解碼就可以得到原始檔案的二進位制內容。 以上是使用file api操作檔案的例子,摘自廖老師的js教程。
file api藉口總覽
◆ filelist介面: 可以用來代表一組檔案的js物件,比如使用者通過input[type="file"]元素選中的本地檔案列表
◆ blob介面: 用來代表一段二進位制資料,並且允許我們通過js對其資料以位元組為單位進行「切割」
◆ file介面: 用來代步乙個檔案,是從blob介面繼承而來的,並在此基礎上增加了諸如檔名、mime型別之類的特性
◆ filereader介面: 提供讀取檔案的方法和事件
filelist介面
#filelist[index] // 得到第index個檔案
blob介面
#blob.size // 唯讀特性,資料的位元組數
#blob.slice(start, length) // 將當前檔案切割並將結果返回
file介面
#file.size // 繼承自blob,意義同上
#file.slice(start, length) // 繼承自blob,意義同上
#file.name // 唯讀屬性,檔名
#file.type // 唯讀屬性,檔案的mime型別
#file.urn // 唯讀屬性,代表該檔案的urn,幾乎用不到,暫且無視
filereader方法
#filereader.readasbinarystring(blob/file) // 以二進位制格式讀取檔案內容
#filereader.readastext(file, [encoding]) // 以文字(及字串)格式讀取檔案內容,並且可以強制選擇檔案編碼
#filereader.readasdataurl(file) // 以dataurl格式讀取檔案內容
#filereader.abort() // 終止讀取操作
filereader事件
#filereader.onloadstart // 讀取操作開始時觸發
#filereader.onload // 讀取操作成功時觸發
#filereader.onloadend // 讀取操作完成時觸發(不論成功還是失敗)
#filereader.onprogress // 讀取操作過程中觸發
#filereader.onabort // 讀取操作被中斷時觸發
#filereader.onerror // 讀取操作失敗時觸發
filereader屬性
#filereader.result // 讀取的結果(二進位制、文字或dataurl格式)
#filereader.readystate // 讀取操作的狀態(empty、loading、done)
對fileapi實踐的三點注意
1. 由於規範尚未截稿,#file.urn尚存較大變數,webkit並未實現此特性
2. #blob.slice在webkit核心中加入了字首,即#blob.webkitslice,且第二個引數不是「length」,而是「end」,話句話說,上面的示例二應改為file.webkitslice(3, size)才能生效
3. 規範中還明確規定了各種出錯處理和異常處理,這些內容是同樣重要的:不論對於一套完備的規範,還是對於乙個健壯的程式而言 。
HTML5 檔案讀取
檔案讀取 title head body input type file class file multiple img src alt id img script 由於 檔案的src屬性,可以通過採用網路位址或base64的方式顯示,因此我們可以利用readasdataurl實現對的預覽。獲取檔案...
HTML5的學習(二)HTML5標籤
3.按功能排列標籤 標籤 描述 html4 html5 定義注釋。定義文件型別。定義文件的主體。定義文件中的節。定義section或page的頁尾。to定義html標題。定義html文件。定義關於文件的資訊。定義section或page的頁首。定義關於html文件的元資訊。定義針對不支援客戶端指令碼...
HTML 5 File API應用例項 訪問本地
關於html 5,51cto已陸續報道了幾篇關於html 5應用技巧方面的文章,比如 探秘html 5鏈結預取功能 html 5 web sockets應用初探 等等,下面我們將介紹乙個簡單的應用,該應用主要使用了html 5中的filereader方法,filereader就是html 5所提供的...