3 Stimmen

Grails: Datei-Uploads validieren

Meine Grails app hat ein Upload-Formular wie das folgende:

<g:uploadForm action="save" >
    <input type="file" name="csvfile" />
    <!-- some other inputs ... -->
    <g:submitButton name="upload" value="Save" />
</g:uploadForm>

Ich möchte die Dateiinhalte nicht im Domänenobjekt speichern, sondern sie direkt in eine Datei mit dem transferTo Methode. Wie kann ich in diesem Fall eine Validierung durchführen (vielleicht mit einem Befehlsobjekt)?

3voto

Rob Hruska Punkte 114761

Wenn Sie eine Datei hochladen, können Sie in Ihrem Controller etwa so vorgehen:

def myAction = {
    def file = request.get('csvfile')
    file.transferTo(new File('/path/to/local/file'))
}

Ich verstehe den Zusammenhang zwischen Ihrer Frage und der Zuordnung der Eingaben in Ihrem Formular zu einem Domänenobjekt nicht. Wenn Sie die Dateiinhalte nicht in Ihrer Domäne haben wollen, sollten Sie kein Domänenfeld für sie definieren.

Wenn Sie uns Ihre Domain nennen, können wir besser verstehen, was Sie erreichen wollen.

0voto

cdeszaq Punkte 29945

Das ist ein bisschen brutal, aber verwenden Sie einfach den von @Rob Hruska bereitgestellten Beispielcode und suchen Sie die Dateien in der Aktion. Es ist nicht besonders elegant, aber es ist funktional und einfach, und es werden keine Dateien in Ihr Domain-Objekt eingefügt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X