2012-04-14 9 views
7

Ich versuche, die ausgezeichnete jquery-file-upload from blueimp in Grails 2.0 zu integrieren und ein neues Plugin dafür zu schreiben. Ich weiß, es gibt already a plugin, aber es verwendet keine Ressourcen und es wurde seit 9 Monaten nicht aktualisiert, und Jquery-Datei-Upload hat sich in dieser Zeit sehr geändert.Mehrere Datei-Upload in Grails

Also habe ich alle Dateien der Distribution in meinem Plugin, und jetzt versuche ich eine Controller-Aktion zu schreiben, die den Upload verarbeiten kann. Das Problem ist, dass request.getFileNames() gibt mir nur einen files[] Eintrag und ich weiß nicht, wie Sie die 3 einzelnen Dateien abrufen, die ich hochladen.

Wie behandeln Sie die Dateien, die von einer Eingabe wie folgt gesendet werden: <input type="file" name="files[]" multiple>?

Antwort

2

request.getFileNames gibt ein Array zurück - Sie können über dieses Array iterieren, um alle Dateien zu erhalten. Das Beispiel ist bereits in der Plugin-Beschreibung vorhanden.

def all = request.getFileNames() 
all.each {name -> 
    def file = request.getFile(name) 
} 

Dies sollte Ihnen alle Dateien geben, die hochgeladen wurden.

4

Eigentlich habe ich es herausgefunden. Es gibt nur eine input[type=file] in der Form und wenn ich mehrere Dateien auswähle, werden sie nicht auf dieselbe Anfrage gesendet. Das Skript query-file-upload sendet so viele POST-Anforderungen wie es Dateien gibt. Deshalb gibt request.getFileNames() mir nur einen Eintrag jedes Mal. Ich habe es geschafft, mein Plugin zu erstellen, es wird bald veröffentlicht. Achten Sie auf http://grails.org/plugin/bootstrap-file-upload.