Mongo でイメージをバイト配列として格納するのに苦労しています。私のドメインはとてもシンプルです
class Book {
String title
String author
byte[] photo
String photoType
}
画像はすべて 300kB 未満なので、そもそも GridFS は避けます。永続化されると、写真は文字列 (常に 11 バイト) として保存されているように見えます
db.book.find() { "_id" : NumberLong(15), "author" : "", "photo" : "[B@774dba87", "photoType" : "image/jpeg", "title" : " "、"バージョン": 0 }
私のコントローラは次のように読み取ります: def saveImage() {
def bookInstance
if(request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
CommonsMultipartFile file = (CommonsMultipartFile)multiRequest.getFile("photo");
params.photoType = file.getContentType()
print "nb bytes " +file.bytes.length //TODO
bookInstance = new Book(params)
bookInstance.photo=new byte[file.bytes.length]
bookInstance.photo = file.getBytes()
def okcontents = ['image/png', 'image/jpeg', 'image/gif']
if (! okcontents.contains(file.getContentType())) {
flash.message = "Photo must be one of: ${okcontents}"
render(view:'create', model:[bookInstance:bookInstance])
return;
}
log.info("File uploaded: " + bookInstance.photoType)
}
if (!bookInstance.save()) {
render(view:'create', model:[bookInstance:bookInstance])
return;
}
flash.message = "Book Photo (${bookInstance.photoType}, ${bookInstance.photo.size()} bytes) uploaded."
redirect(action: "show", id: bookInstance.id)
}
私はmongoプラグインでGrails 2.2を使用しています...
ヒントをありがとうございます (2013 年もよろしくお願いします!)
乾杯フィリップ