代码之家  ›  专栏  ›  技术社区  ›  deamon

Grails:验证文件上传

  •  3
  • deamon  · 技术社区  · 15 年前

    我的Grails应用程序有如下上传表单:

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

    我不想将文件内容存储在域对象中,但希望将它们直接传输到 transferTo 方法。在这种情况下,如何执行验证(可能使用命令对象)?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Rob Hruska MegalomanINA    15 年前

    上载文件时,可以在控制器中执行以下操作:

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

    我不理解您的问题与表单中的输入如何映射到域对象之间的关系。如果不希望文件内容位于域中,则不应为它们定义域字段。

    如果你能为我们提供你的领域,我们可以更好地理解你正在努力实现的目标。

        2
  •  0
  •   cdeszaq Sudhir N    14 年前

    这有点暴力,但只需使用@Rob Hruska提供的示例代码并在操作中查找文件。它不是特别优雅,但功能性强、简单,不会将文件放入域对象中。