2011-08-03 44 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

現貨...我怎麼能錯過它!謝謝你... resource.serve方法確實會改變響應頭。所以,我認爲我應該在對輸出流進行響應之前重寫。 – rajugaadu