【问题标题】:Java : Unable to change 'Content-Disposition' attribute in the Header for a responseJava:无法更改响应头中的“Content-Disposition”属性
【发布时间】:2011-08-03 12:39:50
【问题描述】:

下面是代码:

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);
}

如您所见,我已明确尝试将 Header 中的“Content-Disposition”更改为“attachment”。但是,当我打开一个 MS Office 文档时,HTTP 标头数据将其显示为“内联”: 内容处置:内联;文件名="New%20Microsoft%20Office%20Word%20Document.docx"

你认为我应该做些什么来设置它吗?

【问题讨论】:

  • 也许您的响应已经提交?

标签: java http-headers


【解决方案1】:

我怀疑resource.serve 方法调用在内部用自己的值覆盖了标头。

The javadoc 说:

如果已经设置了标头,则新值将覆盖 前一个。 containsHeader 方法可用于测试 在设置其值之前存在标头。

【讨论】:

  • 现货...我怎么能错过它!谢谢人...... resource.serve 方法确实改变了响应头。所以,我认为我应该在将响应抛出到输出流之前进行覆盖。
猜你喜欢
  • 2018-10-30
  • 1970-01-01
  • 2017-10-10
  • 2013-02-10
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
相关资源
最近更新 更多