私のページでドラッグドロップファイルを処理する関数があります:
function createDropHandlers() {
var target = document;
if (target === null) {
return false;
}
// attach the 'dragover' event to the container
target.addEventListener('dragover', function(event) {
event.preventDefault();
}, true);
// attach the 'drop' event to the container
target.addEventListener('drop', function(event) {
event.preventDefault();
var files = event.dataTransfer.files;
// if (files.length > 3)
// do something like
// files.slice(files.length-3, files.length);
for (var i = 0; i < files.length; i++) {
processFile(files[i]);
// ...
}
}, true);
}
私がやりたいのは、for
ループの前 (および何らかの方法でファイルを「処理」する前) に、3 つ以上のファイルがドラッグされたかどうかを確認することです。ドラッグされた場合は、「配列」を最後の 3 つの要素にスライスします。私はそれFileList
が読み取り専用であることを知っているので、これを達成するためのオプションが何であるかわかりません...
ファイルをアップロードせず、それらを「処理」した後、File
オブジェクトはまったく必要ありません。私がする必要があるのは、ファイルがオーディオ ファイルであるかどうかを確認し、それらからいくつかのメタデータを読み取り、ページにメタデータを表示することだけです。