2011-08-03 12 views
0

応答のヘッダの「コンテンツ・処分」属性を変更することができませんが、コードです:あなたが見ることができるようにのJava:以下

Resource resource = getResource(request, requestUrl, userInfo, objectIdParam, 
     rootFolderId, pathInfo, overrideCharset, isThumbnailResource); 

// New line added to change Content-Disposition 
response.setHeader("Content-Disposition", "attachment;filename=" + pathInfo); 

if (resource != null && resource.isServable()) { 
    resource.serve(request, response); 
} 

、私は明示的に「コンテンツディスポジション」を変更しようとしていますヘッダーの '添付ファイル'。しかし、MS Officeドキュメントを開くと、HTTPヘッダーのデータは「インライン」と表示されます。 コンテンツの処理:インライン。ファイル名= "新しい%20Microsoft%20Office%20Word%20Document.docx"

私はこの権利を設定するために他の何かを行う必要があると思いますか?

+0

あなたの応答はすでにコミットされている可能性がありますか? – home

答えて

1

resource.serveメソッド呼び出しが内部的にヘッダーを独自の値で上書きすると思われます。

The javadocは言う:

ヘッダがすでに設定されていた場合は、新しい値が 前のものを上書きします。 containsHeaderメソッドは、その値を設定する前に、ヘッダーが存在するかどうかをテストするために使用できます。

+0

Spot on ...どうすればそれを逃すことができますか?ありがとうございます... resource.serveメソッドはレスポンスヘッダを変更します。だから、私は出力ストリームへの応答を投げる直前にオーバーライドしなければならないと思います。 – rajugaadu