サンプル
応用例(GPXファイルを加工するウェブアプリ)
◆html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>File API (Input)</title> <script src="FileInput.js"></src> <style> #disp img { height: 75px; border: 1px solid #000; margin: 10px 5px 0 0; float: left; } </style> </head> <body> <input type="file" id="files" multiple /> <div id="disp" ></div> </body> </html>
◆javascript(FileInput.js)
22-28行目:ファイルが画像の場合の処理(height=75pxの大きさで画像を表示)31-36行目:ファイルが画像以外の場合の処理(テキストを表示)
window.onload = function() { if (window.File) { // File APIに関する処理を記述 // window.alert("File APIが実装されてます。"); document.getElementById('files').addEventListener('change', handleFileSelect, false); } else { window.alert("本ブラウザではFile APIが使えません"); } } function handleFileSelect(event) { var files = event.target.files; // FileList object for(var i=0; i< files.length; i++) { var f = files[i]; // FileReaderオブジェクトの生成 var reader = new FileReader(); // エラー発生時の処理 reader.onerror = function (evt) { disp.innerHTML = "読み取り時にエラーが発生しました。"; } if (f.type.match('image.*')) { reader.onload = function (evt) { var img = document.createElement('img'); img.src = evt.target.result; disp.appendChild(img); } // readAsDataURLメソッドでファイルの内容を取得 reader.readAsDataURL(f); } else { // ファイル読取が完了した際に呼ばれる処理 reader.onload = function (evt) { var content = reader.result.replace(/</g,'<') disp.innerHTML = content; } // readAsTextメソッドでファイルの内容を取得 reader.readAsText(f, 'utf-8'); } } }
参考にしたページ
以上