Steffen Peters: Datei aus dataTransfer.items in Häppchen lesen?

Beitrag lesen

Hallo Rolf,

laut meinem Debugger ist die Methode getFile() nicht vorhanden.


var dt = e.dataTransfer;
var items = dt.items;
for (var i=0; i<items.length; i++) {
	item = items[i].webkitGetAsEntry();
	iterateFilesAndDirs(item);
}

function iterateFilesAndDirs(item,path) {
	path = path || "";
	if (item.isFile) {		// ist eine Datei
		allfiles.push(item);
		previewFile(item,path);
	} else if (item.isDirectory) {
		// hole Verzeichnis-Inhalt
		var dirReader = item.createReader();
		dirReader.readEntries(function(entries) {
			for (var i=0; i<entries.length; i++) {
				iterateFilesAndDirs(entries[i], path + item.name + "/");
			}
		});
	}
}

Beim Upload laufe ich durch alle Einträge von allfiles[]. Hier benötige ich dann das File-Objekt, um die Größe der Datei zu ermitteln und die Datei scheibchenweise zu lesen.

Laut Debugger ist jeder Eintrag sauber vom Typ FileSystemFileEntry. Als Methode finde ich nur <prototype>. Darunter gibt es zwar eine Methode file(), aber wenn ich diese aufrufe, erhalte ich die Fehlermeldung: Uncaught TypeError: 'file' called on an object that does not implement interface FileSystemFileEntry.

LG Steffen