Я пытаюсь динамически отобразить изображение, которое я храню в хранилище данных Google, в виде BLOB-объекта. Я не получаю никаких ошибок, но на странице, которую я просматриваю, появляется испорченное изображение.
Любая помощь будет потрясающей!
У меня в приложении Grails следующий код
класс домена имеет следующий
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
Long id
@Persistent
String siteName
@Persistent
String url
@Persistent
Blob img
@Persistent
String yourName
@Persistent
String yourURL
@Persistent
Date date
static constraints = {
id( visible:false)
}
Мой метод сохранения в контроллере имеет это
def save = {
params.img = new Blob(params.imgfile.getBytes())
def siteInfoInstance = new SiteInfo(params)
if(!siteInfoInstance.hasErrors() ) {
try{
persistenceManager.makePersistent(siteInfoInstance)
} finally{
flash.message = "SiteInfo ${siteInfoInstance.id} created"
redirect(action:show,id:siteInfoInstance.id)
}
}
render(view:'create',model:[siteInfoInstance:siteInfoInstance])
}
Мое мнение имеет следующий вид
<img src="${createLink(controller:'siteInfoController', action:'showImage', id:fieldValue(bean:siteInfoInstance, field:'id'))}"></img>
и метод в моем контроллере, который он вызывает для отображения ссылки на изображение, выглядит следующим образом
def showImage = {
def site = SiteInfo.get(params.id)// get the record
response.outputStream << site.img // write the image to the outputstream
response.outputStream.flush()
}