Sto utilizzando il plugin di caricamento file jQuery.jQuery Caricamento file - come riconoscere quando tutti i file sono stati caricati
Mi piacerebbe essere in grado di attivare un evento quando tutti i file selezionati hanno terminato il caricamento. Finora ho un evento per fare un'azione quando viene selezionato un file per il caricamento e quando ogni particolare file termina il caricamento - c'è un modo per rilevare che tutti i file selezionati hanno terminato il caricamento?
L'applicazione reale è qui http://repinzle-demo.herokuapp.com/upload
Il mio campo di input è simile al seguente:
<div id="fine-uploader-basic" class="btn btn-success" style="position: relative; overflow: hidden; direction: ltr;">
mio codice di script simile al seguente:
<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>
sto gestisce la richiesta con un gioco Controller (Java) di quadro simile al seguente:
publi
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);
}
Questa frustrazione esiste ancora 3 anni dopo in origine essere chiesto. Tutte le risposte che ho visto non affrontano completamente il problema. Per il callback "fileuploadstop" attivato solo 1 volta dopo che tutti i caricamenti sono terminati, è necessario passare un'opzione di "singleFileUploads: false". Ciò causerà l'utilizzo di 1 richiesta XHR per tutti i caricamenti e solo la richiamata potrà essere attivata una sola volta. Altre risposte: 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. Stavo provando l'intera lista di metodi che potrebbero calciare quando il caricamento asincrono è stato completato. Non pensavo che l'evento di stop sarebbe stata la cosa da usare. Grazie! –