我正在关注 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
请指教。谢谢!