我正在尝试从gsp渲染上传的图像但没有成功。我有这个渲染图像..有什么问题?
//domain-class
class Something {
...
byte[] image
}
//controller
def displayImage(){
def something = Something.get(id)
response.contentType = 'image/jpeg'
response.outputStream << something?.image
response.outputStream.flush()
}
//gsp
<img src="${createLink(action:'displayImage', id:something?.id)}" />
我已经将控制器修改为像这样
displayImage(){
def something = Something.get(params.id)
........
}
我没有得到异常,但都没有显示图像。我不知道这是否与ContentType或我必须指定的任何其他事情有关。任何想法??
答案 0 :(得分:1)
您需要采用以下任何一种方法:
def displayImage(){
def something = Something.get(params.id)
........
}
或
def displayImage(Long id){
.....
}
控制器自动绑定params
而不是id
。如果您在进行此修改后也遇到异常,请将其添加到问题中。
答案 1 :(得分:0)
试试这个:
def displayImage(){
def something = Something.get( params.id )
byte[] image = something.image
response.outputStream << image
}
答案 2 :(得分:0)
def displayImage(){
Photo photo = Photo.get(1)
response.setHeader("Content-disposition", "attachment; filename=${photo?.name}")
response.contentType = photo?.type
response.outputStream << new File(photo?.path).getBytes()
response.outputStream.flush()
return;
}