たとえば、ファイルを選んだときの e
の中にはこういうものが入っています:
プロパティ | 意味 | 具体例 |
---|---|---|
e.type | イベントの種類 | "change" (ファイルが変わった) |
e.target | イベントが発生した要素 | <input type="file" id="upload"> |
e.target.files | 選択されたファイルたち(リスト) | [ファイルオブジェクト] |
e.target.files.length | 選択されたファイルの数 | 1(1枚選んだ場合) |
e.target.files[0] | 選ばれた最初のファイル | 画像ファイル1個 |
e.target.files[0].name | ファイル名 | "myphoto.jpg" |
e.target.files[0].size | ファイルサイズ(バイト単位) | 142000 (約142KB) |
e.target.files[0].type | ファイルの種類 | "image/jpeg" |
🖊 具体的な中身のイメージ(図にすると)
たとえば、画像ファイル "myphoto.jpg"
を選んだ場合、e.target.files[0]
はこんなデータを持っています:
{
name: "myphoto.jpg",
size: 142000,
type: "image/jpeg",
lastModified: 1685000000000,
...
}
つまり!
e.target.files[0].name
→"myphoto.jpg"
e.target.files[0].size
→142000
e.target.files[0].type
→"image/jpeg"
みたいに細かくファイル情報を取得できるんです。
📖 この情報を使うと何ができるか?
例えば、こういうことができます:
- ファイル名を画面に表示する
→console.log(file.name);
- ファイルサイズをチェックして、大きすぎたら警告する
→if (file.size > 5_000_000) { alert("5MB以上のファイルは選べません"); }
- 画像ファイルだけ許可する(JPEG, PNG)
→if (!file.type.startsWith('image/')) { alert("画像ファイルを選んでください"); }
などなど、応用が広がります。