gpt4 book ai didi

grails - Groovy中的类强制转换异常

转载 作者:行者123 更新时间:2023-12-02 13:50:18 24 4
gpt4 key购买 nike

我想使用Grails上的Groovy上传图像。
我的gsp页面如下(我显示的是原始版本的简化版)

<g:form controller="post" action="save" enctype="multipart/form-data">        
My picture <input type="file" name="myPicture" />
<g:submitButton name="submit" value="Save"/>
</g:form>

我的域类如下:
class Post {    

byte[] myPicture

static mapping = {
myPicture type: "blob"
}

我需要此映射,否则MySql将创建一个smallblob,该图片很小以适合图像
static constraints = {
myPicture(nullable:false)
}

}

在 Controller 上,我有一个名为save的操作,如下所示:
def save = {                               
def post = loadPost(params.id)

post.properties = params

if(post.save()) {
print "hallo world"
redirect(action:'list', params:params)
} else {
render(view:'edit', model:[post:post])
}
}

当我尝试将图像保存在数据库时,将引发异常。
2009-04-27 18:16:07,319 [20806951@qtp0-0] ERROR errors.GrailsExceptionResolver  - java.lang.ClassCastException: [B cannot be cast to java.sql.Blob

org.codehaus.groovy.runtime.InvokerInvocationException:java.lang.ClassCastException:[B不能转换为java.sql.Blob

任何提示这是为什么?

顺便说一句,我在一个教程中看到图像是作为字符串处理的,但是没有用
也一样

最佳答案

尝试这种方式:

  def save = {                               

def post = loadPost(params.id)

def f = request.getFile('myPicture')

post.myPicture = f.getBytes()
post.pictureType = f.getContentType()


if(post.save()) {

关于grails - Groovy中的类强制转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/794357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com