2016-03-22 6 views
0

Ich habe Probleme mit der Dropzone-Implementierung zum Ziehen/Ablegen von Dateien. Ich entwickle mich auf einer Smalltalk-Plattform mit Seaside am Frontend. Momentan kann ich eine Datei hochladen, aber das Erfolgssymbol sowie die Fortschrittsanzeige werden zum Zeitpunkt des Uploads nicht angezeigt. Wenn ich Elemente im Web überprüfe, sehe ich, dass die divs, die den Erfolg/Fortschritt darstellen, vorhanden sind. Ich sehe, dass die Dateigröße und der Dateiname angezeigt werden, während die Datei eingefügt wird. Kann jemand darauf hinweisen, was ich vermisse? Mein Code ist wie folgt:Drag & Drop mit Dropzone und Seaside

| serverURL url | 

serverURL := RepWebSettings portalSettingsWebServerURL ifNil: [self session requestContext request uri serverURL]. 
url := serverURL , 
     html context actionUrl printString , 
     '&' , (html callbacks store: (Seaside.WAValueCallback on: [self uploadFileDroppedFiles])). 

html div class: 'layoutBorder'; with: [ 
    html div id: 'draganddropupload'; class: 'dropzone'; 
     with: [ 
      html div class: 'dz-message'; with: [ 
       html image url: RepWebFileLibrary/#draganddropPng]]]. 

html script: (' 
    $(document).ready(function() { 
     Dropzone.autoDiscover = false; 
     Dropzone.uploadMultiple = true; 
     Dropzone.createImageThumbnails = false; 
     $("#draganddropupload").dropzone({ 
      url: "%1", 
      success: function (file, response) { 
       document.location.reload(true); 
      } 
     }); 
    });' bindWith: url). 

Antwort

0

Wenn Sie Ihr Beispiel mit Chrome Developer Tools geöffnet laufen auf der Registerkarte ‚Console‘, was JavaScript-Fehler sehen Sie? Es scheint, als ob Dropzone den Fortschrittsbalken und das Häkchen verwaltet.

Aus an ihrem einfachen Beispiel suchen:

https://github.com/enyo/dropzone/blob/gh-pages/examples/simple.html

Der einzige Unterschied zwischen dem, was du hast und was sie haben ist, dass sie eine ‚Form‘ Tag mit der ‚Dropzone verwenden 'Klasse und Sie verwenden ein' Div 'Tag.

Es kann also sein, dass Dropzone erwartet, in einer 'Form' und ohne weitere Eingaben in dieser Form zu operieren. Wenn ich es wäre, würde ich dieses div-Tag in Ihrem Code am Meer in ein Formular ändern und sicherstellen, dass das neue Formular nicht in einem anderen Formular auf der Seite verschachtelt ist.