2

我做了一个xml文件并通过这些标题强制下载它:

header('Content-disposition: attachment; filename="export.xml"');
header('Content-type: application/xml; charset=utf8');
readfile('export.xml');

但是在下载之前我看到一个对话框,这个文件可能对我的电脑有害?如何摆脱这个对话框?也许我的标题是错误的?

upd好吧,什么都做不了,我在我的测试主机上做了一个测试,你可以在这里检查它:带有生成链接的站点,以及一个 xml 文件原样:export.xml

4

3 回答 3

2

尝试更改application/xmltext/xml. 可能您的浏览器认为这application意味着可执行。

于 2013-03-07T11:55:24.920 回答
1

尝试这个 :

<?php 
header('Content-disposition: attachment; filename="export.xml"');
header('Content-type: "text/xml"; charset="utf8"');
readfile('export.xml');
?>
于 2013-03-07T11:56:22.917 回答
0

注意:这并不能解决您的问题,但它确实解决了我在发出该通知的计算机上遇到的问题(windows、chrome、apache webserver、PHP 5.4.10)。我把它留在这里给未来的访客。

一些浏览器不仅会查找标头,还会查找 URL 中的“文件名”。

例如,如果您下载一个包含XML 的 PHP 文件,浏览器可能会将其识别为危险文件(因为它可以在您的系统上执行,或者不在某个白名单中或其他):

http://example.com/xml-download.php

一个简单的解决方案是使该文件不再以.php任何结尾,例如通过添加?

http://example.com/xml-download.php?

并继续以这种方式发出文件名:

http://example.com/xml-download.php?export.xml

(最后一个不是必需的,但对于一些较旧的浏览器尤其有用)

于 2013-03-07T12:12:17.540 回答