Ich habe nur normale Form mit einigen Eingabefeldern und einem Dateieingabefeld. Ich verwende das Blueimp Jquery File Upload Plugin, um eine Datei hochzuladen. Es scheint zu funktionieren, wenn Sie eine Datei auswählen und danach auf den Upload-Button klicken. Wenn Sie Dateien zum Hochladen erneut auswählen, wird die gesamte Vorgeschichte der Auswahl gespeichert und nach dem Hochladen werden alle XHRs an den Server gesendet.Warum BlueImps JQuery-Datei-Upload alle hinzufügen prev. ausgewählte Dateien, selbst wenn die Optionen [replaceFileInput: false] und [maxNumberOfFiles: 1] auf init gesetzt sind?
Ich möchte nur eine aktuell ausgewählte Datei hochladen, nicht alle zuvor ausgewählten Dateien (in Datei öffnen Dialog).
Hier ist mein js Modul mit dem Hochladen zu handhaben:
$(function() {
$('#upload_form').fileupload({
dataType: 'json',
autoUpload: false,
fileInput: '#filechose_button',
replaceFileInput: false,
maxNumberOfFiles: 1,
multipart: true,
add: function (e, data) {
$('#upload_button').click(function() {
$('#upload_button').attr('disabled', true);
...
data.submit();
...
});
},
done: function (e, data) {
... // successfully uploaded
},
progressall: function (e, data) {
... // update a progress bar
}
});
});
Die Lösungen, die ich hier gefunden (How to upload a file only once with blueimp file upload plugin?) scheint zu sein, nicht der beste Weg (ich sehe es als schmutzig), weil nur den Klick freibleibend Ereignis löst noch nicht das Problem des Sammelns aller zuvor ausgewählten Dateien (Art von Speicherlecks)
Die Option maxNumberOfFiles: 1
funktioniert nicht für mich.
gibt es keine "Speicherlecks". Versuchen Sie, zwei Dateien hinzuzufügen, und löschen Sie eine Datei aus dem Dateisystem, bevor Sie sie hochladen. Die Datei wird nicht hochgeladen - der Browser speichert den Pfad zu den Dateien, nicht die Dateien selbst. –