Używam wtyczki do przesyłania plików jQuery.Przesyłanie plików jQuery - jak rozpoznać, kiedy wszystkie pliki zostały przesłane
Chciałbym móc wywołać zdarzenie, gdy wszystkie wybrane pliki zostały zakończone. Do tej pory mam zdarzenie do wykonania akcji po wybraniu pliku (plików) do przesłania i po zakończeniu każdego pliku - czy istnieje sposób na wykrycie, że wszystkie wybrane pliki zostały przesłane?
Rzeczywista aplikacja jest tutaj http://repinzle-demo.herokuapp.com/upload
Moje pole wejściowe wygląda następująco:
<div id="fine-uploader-basic" class="btn btn-success" style="position: relative; overflow: hidden; direction: ltr;">
Mój kod skryptu wygląda następująco:
<script>
$(function() {
$('#fileupload').fileupload({
dataType: 'json',
add: function (e, data) { // when files are selected this lists the files to be uploaded
$.each(data.files, function (index, file) {
$('<p/>').text("Uploading ... "+file.name).appendTo("#fileList");
});
data.submit();
},
done: function (e, data) { // when a file gets uploaded this lists the name
$.each(data.files, function (index, file) {
$('<p/>').text("Upload complete ..."+file.name).appendTo("#fileList");
});
}
});
});
</script>
Ja obsługi żądania z luzem Kontroler struktury (Java), który wygląda następująco:
par
c static void doUpload(File[] files) throws IOException{
List<ImageToUpload> imagesdata = new ArrayList<ImageToUpload>();
//ImageToUpload has information about images that are going to be uploaded, name size etc.
for(int i=0;i<files.length;i++){
Upload upload = new Upload(files[i]);
upload.doit(); //uploads pictures to Amazon S3
Picture pic = new Picture(files[i].getName());
pic.save(); // saves metadata to a MongoDB instance
imagesdata.add(new ImageToUpload(files[i].getName()));
}
renderJSON(imagesdata);
}
Ta frustracja nadal istnieje 3 lata po pierwotnie pytania. Wszystkie odpowiedzi, które widziałem, nie rozwiązują w pełni problemu. Aby wywołanie zwrotne "fileuploadstop" uruchomiło się 1 raz po zakończeniu wszystkich operacji przesyłania, należy przekazać opcję "singleFileUploads: false". Spowoduje to użycie 1 żądania XHR we wszystkich przesyłanych plikach i tylko wywołanie zwrotne będzie uruchamiane tylko jeden raz. Inne odpowiedzi: http://stackoverflow.com/questions/19025748/finish-of-multiple-file-upload http://stackoverflow.com/questions/18636845/refreshing-the-page-after-completing- uploads-in-jquery-multi-file-uplaoder – BlueWater86
Lol. Próbowałem całej listy metod, które mogą wykopać po zakończeniu przesyłania asynchronicznego. Nie sądziłem, że zdarzy się, że zdarzenie zatrzymania powinno być użyteczne. Dzięki! –