Amazon S3,在尝试下载文件时收到“收到重复标头”

时间:2011-12-05 21:58:48

标签: google-chrome http-headers amazon-s3

这只发生在Chrome中,在Safari中运行良好。 Chrome正在抱怨正在接收重复的内容处置标头。当我将文件上传到S3时,我设置了内容处理,以便我可以在下载时命名该文件,并确保将其作为附件(不是内联)下载。

这是我具体得到的:

enter image description here

4 个答案:

答案 0 :(得分:2)

当我遇到这个错误时,是因为我有这样的事情:

Response.AddHeader("Content-Disposition", "attachment;filename=file,withcomma.pdf")

Chrome将此解释为两个Content-Disposition标头:“attachment:filename = file”和“,withcomma.pdf”。

用引号括起文件名解决了我的问题:

Response.AddHeader("Content-Disposition", "attachment;filename=\"file,withcomma.pdf\"")

答案 1 :(得分:0)

我已经看到了你的问题而且我刚刚解决了我的问题,尽管我的代码是asp.net。我今天开始收到此错误,Chrome必须添加一些更严格的标题处理。无论如何,我的错误被证明是我设置内容处置标题的部分。

而不是

Response.AppendHeader(“Content-Disposition”,“attachment,filename = abcdxyz.pdf”)

我把它改成了

Response.AppendHeader(“Content-Disposition”,“attachment; filename = abcdxyz.pdf”)

逗号似乎会引起某种问题,切换到分号似乎可以解决它。它现在对我来说很好,但是我应该提到我对Amazon S3(根本不熟悉)所以也许我已经离开了,但是因为它对我有用,也许它对你有用。

答案 2 :(得分:0)

Chrome上的重复标题错误是HTML标题的错误:当文件名带有逗号时,“Content-disposition:attachment”。

这里的解决方案,我们只需在文件名之间添加双引号(“)作为示例:

Response.AddHeader("Content-Disposition", "attachment;filename=\"file,withcomma.pdf\"")

此解决方案适用于所有浏览器(我在IE11,Chrome,Firefox上测试过)

答案 3 :(得分:-1)

原始代码:

header("Content-Disposition: attachment; filename=$displayname");

改变:

header('Content-Disposition: attachment; filename="'.$displayname.'"');