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