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

时间:2013-11-07 11:32:33

标签: php google-chrome symfony content-disposition force-download

我使用Symfony2 Framework并使用以下代码导出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');

无论我是采用“Content-Transfer-Encoding”还是“Pragma”或者除了“Content-Type”和“Content-Disposition”之外的所有内容都无关紧要。 Chrome中的结果始终是:“文件名 - ,附件”(不带“)。 在Firefox中,这很好用。

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

2 个答案:

答案 0 :(得分:3)

我知道这是一个相当古老的讨论,但是如果有人到这里寻求帮助,我确定chrome似乎想要在文件名末尾加一个分号然后它很开心。如(VBScript):

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

为我修好了。 -Dave

答案 1 :(得分:0)

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

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

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