2010-11-24 6 views
3

My Grailsアプリケーションは、次のようなアップロードフォームを持っています:Grails:ファイルのアップロードを検証する

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

ドメインオブジェクトにファイルの内容を保存するのではなく、transferToメソッドを使ってファイルに直接転送します。この場合(おそらくコマンドオブジェクトを使用して)検証を実行するにはどうすればよいですか?

答えて

3

、あなたはあなたのコントローラ内でこのような何かを行うことができます。私はあなたの質問との間の接続を理解していないよ

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

のフォームでの入力は、ドメインオブジェクトにマッピングする方法を。ドメイン上のファイルの内容が必要ない場合は、ドメインフィールドを定義しないでください。

ドメインをご提供いただければ、達成しようとしていることをよりよく理解することができます。

+0

ドメインクラスにはファイル名のみが含まれていますが、これは私の例では問題ありません。私は、ユーザーがフォームで必要なファイルを確実に送信できるようにする方法を知りたいと思います。 – deamon

0

これは少し強引ですが、@Rob Hruskaが提供するサンプルコードを使用して、アクション内のファイルを探してください。特にエレガントではありませんが、機能的でシンプルなので、ドメインオブジェクトにファイルを置くことはありません。

関連する問題