這應該可以用在圖檔上傳前的預覽上。
(註:在IE9上測試不支援,IE10看說明似乎有支援,Firefox和Chrome則都有支援)
<!DOCTYPE html > <html> <head> <script> function aa() { var file = document.getElementById('ff').files[0]; //console.dir(file); if (file) { var msg = []; msg.push('檔名:' + file.name , '大小:' + file.size , '檔案類型:' + file.type , '修改日期:' + file.lastModifiedDate.toLocaleDateString() ); document.getElementById('msg').innerHTML = msg.join("<"+"br"+">"); //讀取檔案 var fileReader = new FileReader(); fileReader.onload = function(event){//讀取完後執行的動作 //console.dir(event); document.getElementById('xx').src = event.target.result; }; fileReader.readAsDataURL(file);//讀取檔案內容,以DataURL格式回傳結果 //fileReader.readAsText(file, 'UTF-8'); } } </script> </head> <body> <input type=file id="ff" onchange="aa()"/> <div id="msg"></div> <img id="xx" src="" /> </body> </html>
File的屬性
- 檔名:file.name
- 大小:file.size
- 檔案類型:file.type
- 修改日期:file.lastModifiedDate
FileReader讀取檔案的方式
- readAsDataURL:讀取檔案內容,以DataURL格式回傳結果。例 readAsText(file)
- readAsText:讀取檔案內容,以文字格式回傳結果。例 readAsText(file, 'UTF-8')
- readAsBinary:讀取檔案內容,以二進位字串格式回傳結果。例 readAsText(file)
- readAsArrayBuffer:讀取檔案內容,以陣列緩衝格式回傳結果。例 readAsText(file)
HTML5 File API 讀取檔案的觸發事件(event)
沒有留言:
張貼留言