2013-05-05 2 views
0

Я пытаюсь сделать загруженное изображение из gsp без успеха. У меня есть это, чтобы сделать изображение. Что не так?Невозможно отобразить blob как изображение в grails 2.1

//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 или с любой другой вещью, которую я должен указать. Есть идеи??

ответ

1

Вы должны идти с любым из следующих подходов:

def displayImage(){ 
    def something = Something.get(params.id) 
    ........ 
} 

или

def displayImage(Long id){ 
    ..... 
} 

Контроллер имеет params привязку автоматически вместо id. Если вы получите исключение после этой модификации, то, пожалуйста, добавьте это к вопросу.

0

попробовать это:

+0

Это не работает, это вызов из GSP ок? Я не знаю, что еще делать. – Marcos

+0

смотрите http://fbflex.wordpress.com/2008/04/22/image-uploading-in-grails-with-5-lines-of-code/ –

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; 
} 
Смежные вопросы