2015-03-08 16 views
5

Mit dropzone.js hatte ich keine Probleme, es zum Laufen zu bringen, einschließlich Bilder, die bereits auf den Server hochgeladen wurden.dropzone.js Fortschrittsbalken beim Abrufen vom Server unterdrücken

Das einzige Problem, das ich habe, ist, wenn ich diese Dateien vom Server bei einer Seitenaktualisierung abrufen (was bedeutet, dass sie während der aktuellen Verwendung dieser Seite nicht hochgeladen wurden), wird der Upload-Fortschrittsbalken permanent angezeigt. Gibt es eine Möglichkeit, die Fortschrittsleiste für zuvor hochgeladene Bilder zu unterdrücken? Ich möchte weiterhin die Fortschrittsbalken beim Hochladen verwenden und möchte das CSS nicht aus der Vorlage entfernen.

Nicht, dass es in diesem Fall hilfreich ist, aber hier ist der Code, den ich verwende, um die Dateien abzurufen und sie in einem Remote-Vorschaudiv anzuzeigen.

Dropzone.options.myDropzone = { 
    previewsContainer: document.getElementById("previews"), 
    init: function() 
    { 
    thisDropzone = this; 

    $.get('../cgi/fileUpload.php', function(data) 
    { 
     $.each(data, function(key,value) 
     { 
      var mockFile = { name: value.name, size: value.size}; 
      thisDropzone.options.addedfile.call(thisDropzone, mockFile); 
      thisDropzone.options.thumbnail.call(thisDropzone, mockFile, value.uploaddir+value.name); 

      var strippedName = (value.name).slice(11); 
      fileList[i] = {"serverFileName" : value.name, "fileName" : value.name, "fileSize" : value.size, "fileId" : i }; 
      i++; 


      var removeButton = Dropzone.createElement("<button class=\"btn btnremove\" style=\"width: 100%;\">Remove file</button>"); 

      var _this = this; 

      removeButton.addEventListener("click", function(e) 
      { 

       e.preventDefault(); 
       e.stopPropagation(); 

       thisDropzone.removeFile(mockFile); 

      }); 

      mockFile.previewElement.appendChild(removeButton); 

     }); 
    }); 
}, 
url: "../cgi/fileUpload.php" 
}; 
+0

Wenn sie bereits hochgeladen wurden, sollte die Aktualisierung sie nicht vom Server abrufen? – Miro

+0

Ja, ich möchte, dass sie ohne Fortschrittsbalken abgerufen werden. – tllewellyn

Antwort

2

Beantwortet! Wählen Sie einfach die divs entfernen mit Jquery, nachdem sie geliefert wurden:

$(".dz-progress").remove(); 

Nicht übermäßig elegant, aber es funktioniert.

+2

ja, oder Sie könnten '$ ('. Dz-preview') verwenden. AddClass ('dz-complete');' – Miro

11

Vergewissern Sie sich, dass es keine Fortschrittsbalken, etc ...

thisDropzone.emit("complete", mockFile); 

FAQ Dropzone.JS

+1

Danke. Das funktioniert für mich. –

4

Dies ist eine alte Frage, aber ich hatte das gleiche Problem. Meine Lösung war, meine .css-Datei zu bearbeiten:

.dz-progress { 
    /* progress bar covers file name */ 
    display: none !important; 
} 
5

Ich hatte das gleiche Problem.

$ ('. Dz-progress'). Hide();

Es wäre toll, wenn Sie .hide() anstelle von .remove() -Methode verwenden. Weil .remove() das div permanent entfernt.

+0

Wurde Ihr Problem gelöst? – Panther

+0

Ja. Es wird mit $ ('. Dz-progress') aufgelöst. @Panther –

0

Probieren Sie dies funktioniert für mich $ (". Spinner"). Hide();

Verwandte Themen