【发布时间】:2013-06-21 04:04:25
【问题描述】:
我正在关注 Book Grails In Action。第 5.5 节是如何将照片上传到用户资料的示例。没什么复杂的:
域
class Profile {
static belongsTo = User
byte[] photo
String fullName
String bio
String homepage
String email
String timezone
String country
String jabberAddress
String toString() {
"Perfil para ${fullName} (${id})"
}
static constraints = {
fullName(nullable: true)
bio(nullable: true, maxSize: 1000)
homepage(nullable: true, url: true)
email(nullable: true, email: true)
photo(nullable: true)
country(nullable:true)
timezone(nullable: true)
jabberAddress(nullable: true, email: true)
}
}
使用源代码中的 Profile 和 ImageController 代码,尝试上传照片(大小小于 10kb)时出现此错误:
“PHOTO BINARY(255)”列的值太长
我尝试了各种方法来更改列定义以接受更大的字节[],包括:
1) 在 Profile 约束中,设置 maxSize: 1024*200 2)在Profile mappings中,设置照片类型:“byte[]”,长度:1024*200
在映射中,我尝试了 type|sqlType:byte|byte[]|blob|binary 的各种组合,但是值太长(对于 byte[])或对于其他类型(例如,blob):
[B 不能转换为 java.sql.Blob
请指教。谢谢!
【问题讨论】:
-
你在使用 photoUploadCommand 吗?如果是,您是否在那里设置了约束?
-
你用的是什么数据库?
标签: grails grails-orm grails-2.0 grails-domain-class grails-controller