ホームページ >バックエンド開発 >PHPチュートリアル >PHP はヘッダーを使用してファイルをダウンロードします

PHP はヘッダーを使用してファイルをダウンロードします

WBOY
WBOYオリジナル
2016-06-23 14:16:34824ブラウズ

PHP csv ダウンロード

皆さん、ヘッダーを使用して csv をエクスポートしました。ローカルでテストしたところ、正常にダウンロードおよびエクスポートできましたが、サーバー上では Web ページに直接表示されるだけで、ダウンロードできません。これはなぜ発生しますか。 ?
私のヘッダーは次のようなものです:

header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream");header("Content-Type: application/vnd.ms-excel");header("Content-Type: application/force-download"); header("Pragma: public"); header("Accept-Ranges: bytes"); header("Expires: 0");header('Content-Disposition: attachment;filename="data.csv"');header("Content-Transfer-Encoding: binary");header("Cache-Control: must-revalidate, post-check=0, pre-check=0");header('Cache-Control: private',false);


ディスカッションへの返信 (解決策)

header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream");header("Content-Type: application/vnd.ms-excel");header("Content-Type: application/force-download"); header("Pragma: public"); header("Accept-Ranges: bytes"); header("Expires: 0");header('Content-Disposition: attachment;filename=data.csv');header("Content-Transfer-Encoding: binary");header("Cache-Control: must-revalidate, post-check=0, pre-check=0");header('Cache-Control: private',false);

header("Content-Description: File Transfer")
header("Content-Type: application/octet-stream ");
header("Content-Type: application/vnd.ms-excel");
header("Content-Type: application/force-download");
header("Pragma: public");
header ("Accept-Range: バイト");
header("Expires: 0");
header('Content-Disposition:attachment;filename= data.csv'); " );
header("キャッシュ コントロール: 必須再検証、ポスト チェック = 0、事前チェック = 0");
ヘッダー('キャッシュ コントロール: プライベート',false);

ヘッダー("コンテンツ-説明 : ファイル転送");

header("Content-Type: application/octet-stream");
header("Content-Type: application/vnd.ms-excel");
header("Content-Type : application/force-download");
header("Pragma: public");
header("Accept-Ranges: bytes");
header("Expires: 0");
header('Content-Disposition:attachment ;ファイル名 = data.csv');
header("コンテンツ転送エンコーディング: バイナリ");
header("キャッシュ制御: 再検証が必要、ポストチェック = 0、事前チェック = 0"); header(' Cache-Control: private',false); 何が変更されましたか?

しかし、サーバー上では、Web ページに直接表示することしかできません

コードを参照しているのか、CSV の内容を参照しているのか。コードに何も問題はありません。

しかし、サーバー上では、Web ページに直接表示することしかできません

コードを参照しているのか、CSV の内容を参照しているのか。コードに何も問題はありません。
CSV の内容です

ただし、サーバー上の Web ページに直接表示することしかできません

コードを参照しているのか、CSV の内容を参照しているのか。コードに何も問題はありません。
Web ページに出力されるのは CSV コンテンツです。何が起こっているのかお聞きしてもよろしいでしょうか?

ただし、サーバー上では、Web ページに直接表示することしかできません


コードを参照するのか、CSV のコンテンツを参照するのか。コードに何も問題はありません。
Web ページに出力されるのは CSV コンテンツです。何が起こっているのかお聞きしてもよろしいでしょうか?

情報が不完全であるため、何とも言えません。BOM ヘッダーがあるかどうかを確認するために、BOM ヘッダーが出力され、後続のヘッダーが失敗する可能性があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。