2016-07-13 4 views
0

は(ドロップイベント、event.dataTransfer.fileListから)FileListインスタンスを分割することが可能であり、個々<input type="file" ... />要素をその中に各ファイルをASSING?分割ファイルリスト

例えば、入力要素fileInputElementにドロップイベントからすべてのファイル(1以上...)を割り当てるには、希望:

function dropHandler(event) { 
    fileInputElement.files = event.dataTransfer.files; 
} 

私のようなものを探しています:

fileElsが既に配列である場合
function dropHandler(event) { 
    // assume fileEls is an array of input[type=file] elements 
    for (var i = 0; i < event.dataTransfer.files.length; i++) { 

    // yep, FileList.push doesn't exist.. 
    fileEls[i].files.push(event.dataTransfer.files.item(i)); 

    // and this (imagined) FileList constructor is not available... 
    fileEls[i].files = new FileList([event.dataTransfer.files.item(i)]); 
    } 
} 

兆しがハズレを指すが、それに ...

答えて

0

を行うことができない、

0を試してみてください

fileEls.push(event.dataTransfer.files.item(i));あなたも行うことができ

fileEls [i]は.files =クローン(event.dataTransfer.files.itemを)。

ウェブ上に多数のクローン(好ましくはディープクローン)機能があります。

+0

'fileEls'は' input'要素の配列です。 'event.dataTransfer.files.item(i)'は 'File'型を返します。 'fileEls [i] .files'は' FileList'なので、 'File'(これは' event.dataTransfer.files.item(i) 'のもの)で置き換えるのは意味がありません – jlb