Sempervivum
Erfahrenes Mitglied
Wirf mal einen Blick in die Console und das Netzwerktab bei den betreffenden Kollegen.
function download_all(fileidx){
// Eine Datei herunter laden und speichern:
function downloadOne(idx) {
// Die aktuelle Datei mit fetch herunter laden:
fetch(path + currentFiles[idx]).then(response => {
if (!response.ok) {
throw Error(response.statusText);
}
return response.blob();
}).then(blob => {
// Der Parameter blob enthält die herunter geladene Datei.
// Wir speichern sie im lokalen Dateisystem:
saveAs(blob, currentFiles[idx], {});
// Existiert eine weitere Datei?
if (currentFiles[idx + 1]) {
// Herunterladen dieser Datei veranlassen:
downloadOne(idx + 1);
}
}).catch(function(error) {
console.log(error);
});
}
const files = [];
files[0] = ["53-0.JPG","53-1.PDF"];
files[1] = ["53-NP1-0.PDF","53-NP1-1.PDF"];
files[2] = ["53-NP2-0.JPG","53-NP2-1.PDF","53-NP2-2.PDF"];
// Die Gruppe von Dateien, die aktuell herunter geladen werden sollen,
// bereit stellen:
const currentFiles = files[fileidx];
const path = '../pruefpdf/74394/74394199/';
// Das Herunterladen mit der ersten Datei beginnen:
downloadOne(0);
}
Wahrscheinlich benutzt unser saveAs einen Hilfsbutton und Safari lässt nicht zu, dass der schnell hintereinander gedrückt wird. Dann waren wir bisher auf der falschen Spur, denn wenn die Dateien relativ klein sind, ist das Herunterladen schnell beendet. Wir sollten zu der Lösung mit dem durch setTimeout gestaffelten Herunterladen zurück gehen. Du hattest den Code in Posting #5 gepostet. Vielleicht durch ein console.log prüfen, ob die Staffelung richtig funktioniert.Safari didn't like that the button was being pressed more than one time a second, it registered that the data was there and everything had updated but it only ever triggered the last download, setting a delay between file downloads allowed enough time for Safari to process that there should be multiple files downloaded.