我的Grails应用程序有一个上传表单,如下所示:
<g:uploadForm action="save" >
<input type="file" name="csvfile" />
<!-- some other inputs ... -->
<g:submitButton name="upload" value="Save" />
</g:uploadForm>
我不想将文件内容存储在域对象中,而是希望使用transferTo
方法将它们直接传输到文件。在这种情况下如何执行验证(可能使用命令对象)?
答案 0 :(得分:3)
上传文件时,您可以在控制器中执行以下操作:
def myAction = {
def file = request.get('csvfile')
file.transferTo(new File('/path/to/local/file'))
}
我不理解您的问题与表单中的输入如何映射到域对象之间的联系。如果您不想要域中的文件内容,则不应为其定义域字段。
如果您可以向我们提供您的域名,我们可以更好地了解您要完成的目标。
答案 1 :(得分:0)
这有点蛮力,但只需使用@Rob Hruska提供的示例代码并查找操作中的文件。它不是特别优雅,但功能简单,不会将文件放入域对象中。