生成的xml文件对计算机有害


Generated xml file is harmful for computer?

我做了一个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

(最后一个是不必要的,但可能是有用的,特别是在一些旧的浏览器)