我正在尝试使用 GRAILS 实现简单的向/从 DB 上传/下载文件的功能。除了 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 文件时,我得到 Page not found(在 Chrome net::ERR_FILE_NOT_FOUND 中)。Action getFile() 适用于任何其他内容类型。
是否存在以这种方式强制下载(不在浏览器中显示)html文件的可能性?
顺便说一句:为什么显示它(在 Content-disposition 键中没有“附件”值的 response.header)也不起作用?