サンプル
応用例(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');
}
}
}
参考にしたページ
以上