我使用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');

除了“ content-transfer-insoding”或“ pragma”或所有这些都不重要,除了“ content-type”和“ content-disposition”之外,我都没有关系。 Chrome的结果始终是:“ fileName-,intactment”(没有”)。在Firefox中,这可以正常工作。

因此,例如,如果我有一个名为home.xml firefox的文件,则会下载home.xml,而chrome会给我home.xml-,附件。

有帮助吗?

解决方案

我知道这是一个非常古老的讨论,但是如果有人在这里寻求帮助,我确定Chrome似乎想要在文件名结尾处的半月龙,然后很高兴。如(vbscript):

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

这为我修复了。 - 戴夫

其他提示

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

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

解决了我的问题。在我使用上下文开关之前,这是越野车,但现在它可以作为魅力。不要忘记删除以前的内容处置标头,因此您可能会遇到双向标头错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top