如何使用Grails在数据库中存储文件

如何使用Grails在数据库中存储文件,grails,file-upload,Grails,File Upload,我需要使用Grails在数据库中存储一个文件。你知道我怎么做吗?我应该在域类中使用哪种数据类型(字节[]可能是一种解决方案)?请参阅中有关上载文件的章节。也可以使用java.sql.Blob作为二进制内容的类型(在处理大型文件时更可取)。或者,将文件存储在磁盘上,并将其路径存储在数据库中。在磁盘上访问该文件通常比在数据库中更快。当然,这取决于你在应用程序中的需求。但是要注意这个替代方法。我最近在一个域类中使用byte[]来存储文件,在我将应用程序从“HSQLDB”移动到“Oracle expre

我需要使用Grails在数据库中存储一个文件。你知道我怎么做吗?我应该在域类中使用哪种数据类型(字节[]可能是一种解决方案)?

请参阅中有关上载文件的章节。也可以使用java.sql.Blob作为二进制内容的类型(在处理大型文件时更可取)。

或者,将文件存储在磁盘上,并将其路径存储在数据库中。在磁盘上访问该文件通常比在数据库中更快。当然,这取决于你在应用程序中的需求。但是要注意这个替代方法。

我最近在一个域类中使用byte[]来存储文件,在我将应用程序从“HSQLDB”移动到“Oracle express”之前,它一直工作正常。
在Oracle上,字节[]被映射到原始对象,而不是blob。。。(不确定到底出了什么问题)我最终用java.sql.blob解决了这个问题,我也遇到了同样的问题。我所需要做的就是转到数据库(Oracle)并将列类型从RAW更改为Blob。(实际上,我必须删除该列,然后创建一个新列)。
我始终无法找到如何使用上面建议的“java.sql.Blob”。我找到了这个,但看起来有点复杂

更新或生成具有列映射的数据库时,可以强制域对象使用特定类型:

byte[] orgFile

static mapping = {
   columns { 
    orgFile type:'blob'
   }
}

到目前为止,这对我很有效;)

我知道这个替代方案,因为我在PHP中使用了这两种方法。我认为我将使用文件系统选项,因为移动整个文件存储库以扩展应用程序和/或存储很容易。谢谢,伙计们,这是一个死链接