Hallo zusammen,
ich baue derzeit an einer Anwendung, die bei AWS in S3 gespeichert und ausgeführt wird, an sich in HTML in Verbindung mit JavaScript erstellt wurde. Dabei kann der Anwender ein Bild von seinem Rechner hochladen, welches dann in S3 in einem von ihm vorher angegebenen Ordner (gallery) gespeichert wird. Die Funktion dazu habe ich, sie funktioniert auch wie sie soll. Allerdings möchte ich nun, dass der Anwender mehrere Bilder zeitgleich hochladen kann. In HTML habe ich die Option multiple beim input-Feld schon hinterlegt und ich kann mir die Anzahl der ausgewählten Dateien durch files.length ausgeben lassen, aber ich weiß nicht wie ich eine Schleife um meinen Hochladen-Block bauen kann, so dass das Hochladen so lange wiederholt wird wie Dateien ausgewählt wurden.
Hier der Codeausschnitt des Hochladens:
Ausprobiert habe ich bisher sowas
und sowas
Hat jemand vielleicht eine Ahnung wie ich das lösen kann? Eigentlich dürfte es ja nicht so schwer sein das Auslesen der Anzahl der ausgewählten Dokumente mit einer Schleife zu verknüpfen, aber irgendwie hab ich da nen Denkfehler
LG rhln
ich baue derzeit an einer Anwendung, die bei AWS in S3 gespeichert und ausgeführt wird, an sich in HTML in Verbindung mit JavaScript erstellt wurde. Dabei kann der Anwender ein Bild von seinem Rechner hochladen, welches dann in S3 in einem von ihm vorher angegebenen Ordner (gallery) gespeichert wird. Die Funktion dazu habe ich, sie funktioniert auch wie sie soll. Allerdings möchte ich nun, dass der Anwender mehrere Bilder zeitgleich hochladen kann. In HTML habe ich die Option multiple beim input-Feld schon hinterlegt und ich kann mir die Anzahl der ausgewählten Dateien durch files.length ausgeben lassen, aber ich weiß nicht wie ich eine Schleife um meinen Hochladen-Block bauen kann, so dass das Hochladen so lange wiederholt wird wie Dateien ausgewählt wurden.
Hier der Codeausschnitt des Hochladens:
Code:
uploadButton.addEventListener('click', function() {
var fileChooser = document.getElementById('file-chooser');
var file = fileChooser.files[0];
if (!file) {
alert("You must choose a file to upload!");
return;
}
if (file.type.indexOf("image") == -1) {
alert("You may only upload images");
return;
}
var galleryName = getGalleryName();
if (!galleryName) {
alert("You need to enter a gallery name");
return;
}
// Specify the S3 upload parameters
var params = {
Key: galleryName + '/' + file.name,
ContentType: file.type,
Body: file,
ACL: 'public-read'
};
// Upload the file
S3.upload(params, function(err, data) {
if (err) {
alert(err);
} else {
alert("Image uploaded successfully!");
}
});
});
Ausprobiert habe ich bisher sowas
Code:
fileChooser.files.forEach(function(file)
und sowas
Code:
for (i = 0; i < this.files.length; ++i) {
Hat jemand vielleicht eine Ahnung wie ich das lösen kann? Eigentlich dürfte es ja nicht so schwer sein das Auslesen der Anzahl der ausgewählten Dokumente mit einer Schleife zu verknüpfen, aber irgendwie hab ich da nen Denkfehler
LG rhln