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ファイルをダウンロードしようとすると、ページが見つかりません(Chrome net::ERR_FILE_NOT_FOUND)。アクション getFile() は、他のコンテンツ タイプに対して適切に機能します。
この方法でhtmlファイルを強制的にダウンロードする(ブラウザに表示しない)可能性はありますか?
ところで: なぜそれを表示する (Content-disposition キーに "attachment" 値のない response.header) も機能しないのですか?