加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在与oracle一起使用的grails中创建文件上载?

发布时间:2020-12-12 16:25:40 所属栏目:百科 来源:网络整理
导读:出现以下问题: 我试图在grails中创建一个simpel文件上传功能.我刚刚用.创建了一个域类 byte[] rawFile 作为财产. Grails为我做了大部分休息.它适用于开发环境中的标准hsqldb. 然后我将其部署到服务器并配置了oracle db(瘦驱动程序).除了文件上传之外的所有
出现以下问题:

我试图在grails中创建一个simpel文件上传功能.我刚刚用.创建了一个域类

byte[] rawFile

作为财产. Grails为我做了大部分休息.它适用于开发环境中的标准hsqldb.

然后我将其部署到服务器并配置了oracle db(瘦驱动程序).除了文件上传之外的所有内容都可以与oracle db一起使用.对于文件上传,我得到了一个(据我所知)

SQLException: ORA-01461: can bind a LONG value only for insert into a LONG

我尝试了几种方法来解决它(包括blob的一些列映射和使用java.sql.blob而不是byte [])但没有真正起作用,我走的方向是我的代码不再是db独立的.

谷歌并没有真正帮助我,我的grails书籍也没有帮助.

我认为将文件保存到磁盘不是一个好的解决方案.

所以这是我的问题:

如何在与oracle一起使用的grails中创建文件上载?

更新:获得了一些额外的信息.管理以使用XE-Edition of Oracle重现问题:

Hibernate为rawFile创建一个VARBINARY(255)列.所以我试图上传一个4字节的文件,它工作.

然后我手动将列的类型更改为’blob’,它可以处理更大的文件.

然后我补充道

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

到我的域类,它停止工作:

ERROR errors.GrailsExceptionResolver – [B cannot be cast to java.sql.Blob
java.lang.ClassCastException: [B cannot be cast to java.sql.Blob

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读