わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

<input type="file" />で選択した画像を、選択後すぐに表示させる

選択されたファイルの取得

<input type="file" >でファイルが選択された際には、onchangeが呼び出されます。 選択されたファイルの情報は、'inputエレメントの'files'プロパティのfileListオブジェクトが保持しています。 'fileList'オブジェクトには、選択されたファイルの情報が配列で格納されています。選択されたファイルの数は 'fileList'オブジェクトの'length'プロパティに格納されます。

<imgタグ>に設定する

選択されたファイルは、'fileList[]'に格納されますが、この状態では<img>タグの'src'に設定できません。 'src'に設定する為には、URLに変換する必要があります。 URLの変換には、FileReaderクラスのreadAsDataURL()関数を呼び出します。readAsDataURL関数はファイルを読み込んで URLに変換してくれます。readAsDataURL()は非同期で処理され、完了後はonload()関数が呼び出されます。 処理結果は、'fileReader.result'に格納されます。 'fileReader.result'を<img>タグの'src'に設定すると、画像を表示する事ができます。

<input type="file">で選択した画像を、選択後すぐに表示させる
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>&lt;input type="file"&gtで選択した画像をすぐに表示する</h1>
<font color='red'>(複数の画像ファイルを選択できます)</font>
<script type="text/javascript" language="javascript">
<!--
function OnFileSelect( inputElement )
{
    // ファイルリストを取得
    var fileList = inputElement.files;
 
    // ファイルの数を取得
    var fileCount = fileList.length;
 
    var loadCompleteCount = 0;
    var imageList = "";
 
    // 選択されたファイルの数だけ処理する
    for ( var i = 0; i < fileCount; i++ ) {
 
        // FileReaderを生成
        var fileReader = new FileReader();
 
        // ファイルを取得
        var file = fileList[ i ];
 
        // 読み込み完了時の処理を追加
        fileReader.onload = function() {
 
            // <li>,<img>タグの生成
            imageList += "<li><img src=¥"" + this.result + "¥" /></li>¥r¥n";
 
            // 選択されたファイルすべの処理が完了したら、<ul>タグに流し込む
            if ( ++loadCompleteCount == fileCount ) {
 
                // <ul>タグに<li>,<img>を流し込む
                document.getElementById( "ID001" ).innerHTML = imageList;
            }
        };
 
        // ファイルの読み込み(Data URI Schemeの取得)
        fileReader.readAsDataURL( file );
    }
}
// -->
</script>
<input type="file" onchange="OnFileSelect( this );" multiple />
<ul id="ID001" ></ul>
</body>
</html>

実行結果







わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。