2013-09-26 6 views
6

Ich habe eine Frage über die Verwendung von Blueimp jQuery-Datei-Hochladen-Plugin (https://github.com/blueimp/jQuery-File-Upload)Beenden von Multiple-Datei hochladen

Es gibt eine Callback-Funktion oder eine alternative Methode, um zu wissen, wenn ein Upload von mehreren Dateien beendet ist ? Ich will nicht wissen, wann der Upload jeder einzelnen Datei abgeschlossen ist, aber wann ist der gesamte Prozess abgeschlossen (All Uploads Complited).

Gibt es auch die Möglichkeit zu wissen, wie viele Dateien tatsächlich geladen wurden und wie viele Dateien angefordert wurden?

+0

Mögliche Duplikat [jQuery Datei-Upload - wie zu erkennen, wenn alle Dateien hochgeladen] (http: // Stackoverflow .com/questions/13011716/jquery-Datei-Upload-how-to-recognize-wenn-alle-Dateien-have-uploaded) – tirdadc

Antwort

8

Bitte haben Sie einen Blick auf die "stop" callback Option:

.bind('fileuploadstop', function (e) {/* ... */})

Und wenn Sie versuchen, die hochgeladenen Dateien verfolgen möchten diese verwenden:

$('#fileupload').bind('fileuploaddone', function (e, data) { } 

Your collectionsDaten. Dateienonly contain 1 object each, hence you can track the count of files been uploaded.

0

Nur auf diesen Jungs, können Sie die Anzahl der aktiven Uploads mit dem unten erhalten:

var activeUploads = $('#fileuploadForm').fileupload('active'); 

See: https://github.com/blueimp/jQuery-File-Upload/wiki/API#retrieving-the-number-of-active-uploads

Ich wollte einen Zähler verwenden, um auf immer Callback-Funktion Vergleichen Sie diese Variable. Aber halt sieht aus wie es perfekt funktioniert.

Ich möchte nur klären. Wenn ich mehrere singuläre Datei-Upload-Anfragen habe, ist halt() der beste Ansatz?

3

Ja, können Sie nennen es API das Ende eines mehrere Upload-Prozess zu verfolgen:

var $fileInput = $('#fileupload'); 

$fileInput.on('fileuploaddone', function(e, data) { 
    var activeUploads = $fileInput.fileupload('active'); 
    /* 
    * activeUploads starts from the max number of files you are uploading to 1 when the last file has been uploaded. 
    * All you have to do is doing a test on it value. 
    */ 
    if(activeUploads == 1) { 
     console.info("All uploads done"); 
     // Your stuff here 
    } 
}