如何使用GRAILS从数据库下载html文件?

时间:2013-01-24 10:28:16

标签: grails download httpresponse

我正在尝试使用GRAILS在数据库功能上实现简单的上传/下载文件。除了text / html文件外,一切似乎都能正常工作。

域:

class Content {
    byte[] file;
    //filesProperties
    String contentType
    String fileName
    Long size

    static constraints = {
        file maxSize: 1024 * 1024 * 20, nullable: true; //20MB
        fileName nullable:true
        size nullable:true
        contentType nullable:true   
    }
}

动作:

def getFile()
{
    def content = Content.get(params.id)
    response.contentType = content.contentType
    response.setHeader("Content-disposition","attachment;filename="+content.fileName)
    response.contentLength= content.size
    response.outputStream << content.file
    response.outputStream.flush()

}

上传html文件后,数据库网站上的一切似乎都很好。简单SELECT表示文件已上传。 当我尝试下载html文件时,我找不到页面(在Chrome net :: ERR_FILE_NOT_FOUND中)。 Action getFile()适用于任何其他内容类型。

是否有可能以这种方式强行下载(不在浏览器中显示)html文件?

BTW:为什么要显示它(在Content-disposition键中没有“附件”值的response.header)也不起作用?

1 个答案:

答案 0 :(得分:1)

您可以尝试强制下载:

response.setHeader("Content-Type: application/force-download");