J'essaie d'afficher dynamiquement une image que je stocke dans le magasin de données google sous forme de blob. Je ne reçois aucune erreur mais je reçois une image cassée sur la page que je vois.en utilisant des grails et google app engine pour stocker dynamiquement l'image sous forme de blob et la vue
Toute aide serait géniale!
Je le code suivant dans mon Grails application
classe de domaine a les suivantes
@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)
}
méthode Mon enregistrer dans le contrôleur a cette
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])
}
Mon point de vue a le
suivant<img src="${createLink(controller:'siteInfoController', action:'showImage', id:fieldValue(bean:siteInfoInstance, field:'id'))}"></img>
et la méthode dans mon contrôleur qu'il appelle à afficher un lien vers l'image ressemble à ceci
def showImage = {
def site = SiteInfo.get(params.id)// get the record
response.outputStream << site.img // write the image to the outputstream
response.outputStream.flush()
}