Chrome 会为下载的文件添加“-,附件”


Chrome adds "-, attachment" to downloaded file

我使用Symfony2框架并使用以下代码导出xml文件:

$response->setStatusCode(200);
$response->headers->set('Content-Type', 'application/xml');
$response->headers->set('Content-Description', 'Submissions Export');
$response->headers->set('Content-Disposition', 'attachment; filename="' . $filename .'"');
$response->headers->set('Content-Transfer-Encoding', 'binary');
$response->headers->set('Pragma', 'no-cache');
$response->headers->set('Expires', '0');

不管我是否拿走"内容传输编码"或"Pragma"或除了"内容类型"和"内容处置"之外的所有内容。Chrome 中的结果始终是:"文件名-,附件"(不带")。在火狐中,这工作正常。

例如,如果我有一个名为home的文件.xml Firefox将下载home.xml,而Chrome将给我home.xml-附件。

我知道这是一个

非常古老的讨论,但如果有人来这里寻求帮助,我确定 chrome 似乎想要在文件名末尾加一个分号,然后它很高兴。如 (VBScript):

Response.AddHeader "Content-Disposition", "attachment;filename=Something.xls;"

这为我解决了它。-戴夫

我在 ZEND 中遇到了同样的问题,因为我发现了很多非工作的东西,我想将我的 anwser 添加到这篇文章中。由于我花了一段时间来解决它,因此更多的用户和开发人员会想知道我是如何解决它的。我在通话之前添加这个。

header('Content-Disposition: attachment; filename='.time().'.csv');

为我解决了问题。在我使用上下文切换之前,什么是错误的,但现在它可以作为一个魅力。不要忘记删除以前的内容处置标头,因此您可能会收到双标头错误。