2013-04-02 15 views
8

Ich möchte eine einzelne Datei abbrechen, mit jquery Datei-Upload-Plugin. Ich möchte es mit dem Core-Plugin machen, keine Notwendigkeit für alle UI-Sachen.Abbrechen einer einzelnen Datei mit jquery-Datei hochladen

Wo befinden sich die Dateien, nachdem ich sie auf meinem lokalen Dateisystem gewählt habe?

+0

vor oder während des Uploads? –

+1

Vor dem Hochladen möchte ich eine Liste der Dateien anzeigen, die nach der Übertragung hochgeladen werden. Die Absicht ist, Dateien von dieser Liste abzubrechen. Das genaue Verhalten, das ich zu erstellen versuche, ist auch in der UI-Version implementiert: http://blueim.github.com/jQuery-File-Upload/. – Hoetmaaiers

Antwort

7

Ich habe es auf diese Weise in meinem Projekt: anhängen Upload und Abbrechen Schaltflächen für jede Datei

$('#TestForm').fileupload({ 
     dataType : 'json', 
     autoUpload : false, 
     add : function(e, data) { 
      var file=data.files[0]; 
      var vOutput=""; 
      vOutput+="<tr><td>"+file.name+"</td>" 
      vOutput+="<td><input type='button' class='fileUpload' value='upload'></td>" 
      vOutput+="<td><input type='button' class='fileCancel' value='cancel'></td></tr>" 
      $("#TestTable").append(vOutput) 
      $(".fileUpload").eq(-1).on("click",function(){ 
        data.submit(); 
      }) 
      $(".fileCancel").eq(-1).on("click",function(){ 
        $(this).parent().parent().remove() 
      }) 
     } 
}) 

wenn Sie möchten auch Schaltflächen hinzufügen können alle Dateien so laden oder zu stornieren:

$("#fileUploadAll").on("click", function() { 
     $(".fileUpload").click(); // click all upload buttons 
    }) 
    $("#fileCancelAll").on("click", function() { 
     $(".fileCancel").click(); //click all cancel buttons 
    }) 

HTML:

<form id='TestForm'> 
    <input type="file" id="FileSelect" name="files[]" data-url="yourURL.php" multiple/> 
    <input type="button" value="upload all" id="fileUploadAll"/> 
    <input type="button" value="cancel all" id="fileCancelAll"/> 
    <table id='TestTable'></table> 
</form> 
+0

Vielen Dank für Ihre Antwort, es gab mir einen besseren Einblick. Ich erkenne jetzt mein wirkliches Problem. Ich möchte mehrmals eine Datei aus meinem Dateisystem auswählen und sie an eine einzige Eingabedatei anhängen lassen (1 param) – Hoetmaaiers

+0

@RobinH du sicher das '$ (this) .parent(). Parent(). Remove()' kann verhindern Plugin von endlich laden Sie Ihre Datei hoch? –

+0

@AllanRuin das Submit-Ereignis ist bind auf dieser Schaltfläche. Und wenn Sie die Schaltfläche entfernen, wird die Datei nicht hochgeladen. –

0

hatte ich einen Fall, in dem wir eine Überprüfung, ob die ausgewählten fi laufen benötigt le (s) existierten bereits auf dem Server und geben die Option an, sie zu überschreiben. Wenn der Benutzer sich dafür entschieden hat, die Datei nicht zu überschreiben, wollten wir die Datei nicht auf den Server hochladen, sondern in der Warteschlange belassen, wenn sie ihre Meinung geändert haben, dh löschen Sie nicht die ganze Datei.

Um dies zu erreichen, können Sie einfach ein disabled Attribut zu der Startschaltfläche hinzufügen, die Sie nicht hochladen möchten. jQuery fileupload wird wie gewohnt durch die Warteschlange wechseln und alle Zeilen mit deaktivierter Startschaltfläche ignorieren.

1

Eine weitere Option ist hier erwähnt, wenn Sie die Add-Methode überschreiben mögen nicht auf: Add cancel upload or abort functionality to bootstrap multiple file upload plugin

$('#fileupload').bind('fileuploadadd', function(e, data){ 
    var jqXHR = data.submit(); // Catching the upload process of every file 
    $('#cancel_all').on('click',function(e){ 
     jqXHR.abort(); 
    }); 
}); 

Es verwendet das jqXHR Objekt aus dem Verfahren einreichen zurückgegeben. Vergessen Sie nicht, die Autoupload-Einstellung zu deaktivieren. Wenn Sie nicht alle Uploads abbrechen möchten, stellen Sie sicher, dass Sie das Click-Ereignis an das entsprechende Element für diese Datei anhängen.

Verwandte Themen