Hallo Rolf,
die ganze Schleife zur Abarbeitung aller gewählten Dateien, sieht so aus:
allfiles.forEach(function (nextfile, index) {
file = nextfile;
scount = 0;
sliceSize = 250000;
size = file.size;
filename = file.filepath;
ext = "." + file.name.split('.').pop();
chunkid = makeid();
start = 0;
num_of_slices = Math.ceil(size / sliceSize);
do {
var end = start + sliceSize;
if (size - end < 0) {
end = size;
}
var s = slice(file, start, end);
scount ++;
send(s,start,end,scount,size,num_of_slices,ext,filename,chunkid);
start += sliceSize;
}
while (end < size);
});
Und ja, im send() sende ich per XMLHttpRequest die Daten. Allerdings funktioniert es reproduzierbar (und nahezu problemlos) bei einem slizeSize von 250000. Nutze ich bspw. 2500000 (eine 0 mehr), dann funktioniert es nicht mehr. D.h. im upload-Script fehlt dann bspw. das tmp_name um die Datei im Filesystem abzulegen.
Später werde ich mich mit dem XMLHttpRequest wohl auch nochmal beschäftigen müssen, wie ich die Anzahl gleichzeitiger Requests reduziert bekommen. Bei sehr großen Dateien (bspw. > 6GB) reagiert der Server nicht mehr bis der Upload fertiggestellt ist. Der Upload selber läuft aber erfolgreich durch.
LG Steffen