2017-02-13 5 views
1

Я хотел был бы загрузить изображения из внешней папки того же самого сервера, было развернуто приложение grails. Скажем в linux - пользовательский дом.grails 3 Загрузить изображение внешняя папка

Я нашел много статей в Интернете, но безуспешно.

Моего .gsp код попытка:

<asset:image src="libs/test/1.jpg" alt=""/> 
<asset:image src="images/2.jpg" alt=""/> 
<img src="${asset.assetPath(src: '13123.jpg')}" /> 
<img src="\home\user\img\Desert.jpg" /> 

мне нужно что-то вроде:

<img src="${userhome}/image.jpg" /> 

, где домашний каталог является predifined папки.

И еще один вопрос, используя плагин трубопровода актив я получаю эту ошибку:

Byte array resource [resource loaded from byte array] cannot be resolved to URL 

ответ

1

Вы не можете указать внешний файл с актива тега. Но вы можете извлечь файл из файловой системы и «прикрепить» его к ответу, как массив байтов, пример действия контроллера:

def getImage() { 
    byte[] imageInBytes = imageService.getImage() 
    response.with{ 
     setHeader('Content-length', imageInBytes.length.toString()) 
     contentType = 'image/jpg' // or the appropriate image content type 
     outputStream << imageInBytes 
     outputStream.flush() 
    } 
} 

логика Service может выглядеть так:

byte[] getImage() { 
    ByteArrayOutputStream baos = new ByteArrayOutputStream() 
    ImageIO.write(ImageIO.read(new File('/path/to/file')), "jpg", baos) 
    baos.toByteArray() 
} 

И, наконец, IMG тег на вашем GSP:

<img ... src="${createLink(controller: 'imageController', action: 'getImage')}" /> 

Может быть, вы хотите играть с идентификаторами и URL Отображения для получения конкретных изображений с сер вице-логика.

+0

OK Я тестирую и его работу. Я думал, хочу ли я строить галерею и загружать изображения граалями только в том, какой подход оптимален с активностью pluggin или внешним? Спасибо – Vanko

+0

Лучше не использовать активы для галерей. Потому что вы всегда будете потерять изображения при повторном развертывании приложения. –

+0

OK спасибо. Я попробую реализовать с вашим примером. У меня всегда есть возможность использовать БД для хранения изображений, но мне не очень нравится идея. – Vanko