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