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/xmlしてみてくださいtext/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 に答える