2014-09-05 2 views
0

Я пытаюсь отобразить blob, хранящийся в MySQL, как html-содержимое на странице gsp. Может кто-нибудь, пожалуйста, помогите мне в этом, и я новичок в Grails.display blob text in grails

То, что я пытаюсь сделать:

  1. приложение третьей стороны собирается загрузить файл в MySQL, как BLOB, который является отчетом в формате HTML.
  2. В моем приложении GRAILS я должен показать все имена файлов.
  3. Как только пользователь нажимает имя файла, предполагается получить данные BLOB и отобразить текст в формате HTML на странице gsp.

То, что я достиг до сих пор:

  1. index.gsp страница показывает имя файла, дата создания
  2. После пользователь щелкает имя файла, show.gsp показывает имя файла

Что мне нужно достичь:

  1. show.gsp должен показывать содержимое файл как содержимое HTML.

Ограничение:

  1. Я не думаю, чтобы загрузить файл на сервер диске, а затем отобразить файл в формате HTML в GSP странице.

Я использую Grails: 2.3.7 для Windows 7 с MySQL 6.1.6.

ответ

0

ваши действия контроллера, чтобы получить файл из БД может выглядеть следующим образом:

def getFile(Long id){ 
    def obj = YourDomain.get(id) 
    response.setHeader 'Content-Type', 'text/html' 
    response.setHeader 'Content-Disposition', "inline;filename=${obj.filename}" 
    response.outputStream.withOutputStream{ it << obj.file } 
} 
0

Если файл является html-файлом, вы можете сохранить его как TEXT dataType. Это текстовая версия BLOB, поэтому у вас есть типы TINYTEXT, TEXT, MEDIUMTEXT и LONGTEXT.

Вы можете объявить тип данных в классе домена, таких как:

static mapping = { 
    filedata sqlType: 'text' 
}