DataTransfer: files プロパティ
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
files は DataTransfer オブジェクトの読み取り専用プロパティで、ドラッグ操作中のファイルのリストです。操作にファイルが含まれていない場合、リストは空になります。
この機能を利用して、ユーザーのデスクトップからブラウザーにファイルをドラッグすることができます。
メモ:
DataTransfer オブジェクトの files プロパティは、 drop および paste イベントの中からのみアクセスできます。それ以外のどのイベントでも、 files プロパティは空になります。その基礎となるデータストアが保護モードになるからです。
返値
ドラッグ操作中のファイルの FileList で、 1 つのリスト項目が 1 つのファイルを表します。操作にファイルが含まれていない場合、リストは空になります。
例
>ファイルリストの読み取り
この例では、ファイルをドロップできる基本的な領域を作成し、いくつかのメタデータを表示します。
html
<pre id="output">ファイルシステムからここにファイルをドロップしてください。</pre>
css
#output {
min-height: 200px;
border: 1px solid black;
padding: 1em;
}
js
const output = document.getElementById("output");
function log(text) {
output.innerText += text;
}
output.addEventListener("dragenter", (e) => {
e.stopPropagation();
e.preventDefault();
output.textContent = "";
});
output.addEventListener("dragover", (e) => {
e.stopPropagation();
e.preventDefault();
});
output.addEventListener("drop", (e) => {
e.stopPropagation();
e.preventDefault();
const files = event.dataTransfer.files;
log(`ファイル数: ${files.length}\n`);
for (const file of files) {
log(` ファイル: ${file}, ${file.name}, ${file.size} バイト\n`);
}
});
仕様書
| Specification |
|---|
| HTML> # dom-datatransfer-files-dev> |