在grails中显示blob文本

时间:2014-09-05 15:38:44

标签: html mysql grails

我正在尝试将存储在MySQL中的blob显示为gsp页面中的html内容。任何人都可以帮助我,我是Grails的新手。

我想做什么:

  1. 第三方应用程序将在MySQL中上传一个文件为BLOB,这是一种HTML格式的报告。
  2. 在我的GRAILS应用程序中,我想显示所有文件名。
  3. 一旦用户点击文件名,就可以获取BLOB数据并在gsp页面中以HTML格式显示文本。
  4. 到目前为止我所取得的成就:

    1. index.gsp页面显示文件名,创建日期
    2. 用户点击文件名后,show.gsp会显示文件名
    3. 我需要实现的目标:

      1. show.gsp应该将文件内容显示为HTML内容。
      2. 限制:

        1. 我不想在服务器驱动器中下载文件,然后在gsp页面中将文件显示为HTML。
        2. 我在Windows 7上使用Grails:2.3.7和MySQL 6.1.6。

2 个答案:

答案 0 :(得分:0)

如果文件是html文件,则可以将其存储为TEXT dataType。这是BLOB的文本版本,因此您有TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT类型。

您可以在域类中声明数据类型,例如:

static mapping = {
    filedata sqlType: 'text'
}

答案 1 :(得分:0)

您的控制器操作以从db中获取文件可能如下所示:

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 }
}