ファイルとフォルダーをアップロードする機能を実装しようとしています。いくつかのファイルとフォルダーをクロムにドロップし、タイプ dataTransferItemList のエントリのリストを取得してから、リスト内の各エントリに対して何らかのアクションを実行したいと考えています。webkitGetAsEntry 関数でエントリを取得し、FileEntry オブジェクトのファイル関数を呼び出そうとすると dataTransferItemList が空になります。
_processEntries: function () {
//this._entries list of entries of type dataTransferItemList
var entry = this._getNetxFileEntry(this._entries);
if (!isNullOrUndefined(entry)) {
if (entry.webkitGetAsEntry) {
entry = entry.webkitGetAsEntry();
} else {
//TODO: code for other browsers without getAsEntry implementation
}
if (entry.isFile) {
this._readAsFileEntry(entry);
}
else if (entry.isDirectory) {
this._readAsDirectoryEntry(entry);
}
}
},
_readAsFileEntry: function (fileEntry) {
fileEntry.file($.proxy(this._onFileSuccessfullyRead, this));
},
_onFileSuccessfullyRead: function (file) {
//Here this._entries becomes empty so i can't read next entry
},
この状況ですべてのエンティティを処理するにはどうすればよいですか? 手伝ってくれてありがとう。