我做了一个xml文件,并通过这些头强制下载:
header('Content-disposition: attachment; filename="export.xml"');
header('Content-type: application/xml; charset=utf8');
readfile('export.xml');
但是在下载之前我看到一个对话框说这个文件可能对我的电脑有害?如何去掉这个对话框?也许我的标题是错的?
upd嗯,什么也做不了,我在我的test-hosting上做了一个测试,你可以在这里检查它:site with generation link,和一个xml文件,如下:export.xml
尝试将application/xml
更改为text/xml
。可能你的浏览器认为application
意味着可执行
试试这个:
<?php
header('Content-disposition: attachment; filename="export.xml"');
header('Content-type: "text/xml"; charset="utf8"');
readfile('export.xml');
?>
注意:这并不能解决您的问题,但是它确实解决了我在计算机上给出通知的问题(windows, chrome, apache webserver, PHP 5.4.10)。
有些浏览器不仅查找标题,还查找URL中的"filename"。
例如,如果您下载了一个PHP文件,其中包含 XML,浏览器可能会将其识别为危险文件(因为它可以在您的系统上执行,或者不在某些白名单中):http://example.com/xml-download.php
一个简单的解决方案是使该文件不再以.php
结尾,例如通过添加?
:
http://example.com/xml-download.php?
然后继续这样做,这样标记文件名:
http://example.com/xml-download.php?export.xml
(最后一个是不必要的,但可能是有用的,特别是在一些旧的浏览器)