2011-01-14 10 views
0

私のウェブサイトにファイルダウンロード機能があります。それは前にうまく動作します。しかし、PHP 5を実行している別のサーバーにサイトを移動した後(以前はPHP 4で動作していました)。クリックしてダウンロードすると、不要なファイルの先頭と末尾に余分な空白行が自動的に追加されます。関数をダウンロードするコードは次のとおりです。ダウンロードファイルに関するphp header()関数の問題

header("Content-Type: application/gas"); 
header("Cache-control: private");  
header("Content-Disposition: attachment; filename=aaa.gas"); 

誰でもお手伝いできますか?ありがとう!

+0

おそらくContent-Dispositionヘッダーの代わりにファイルコンテンツを印刷すると役立ちますか? – shybovycha

+0

トピックオフ:RFC 2231規格では、あなたの 'filename'を二重引用符で囲むべきだと述べています。あなたがスペースを持っている 'filename'を提供しようとするならば、Firefoxでダウンロードはうまくいきません。 http://kb.mozillazine.org/Filenames_with_spaces_are_truncated_upon_download –

+2

与えられたコードは実際には出力を出力しませんし、PHPのオープン/クローズタグも表示しません。この質問には適切なテストケースがないことは明らかです。テストケースがなければ、それは答えられません。 –

答えて

4

の後にスクリプト内のPHPを閉じる余分な空白行が存在することがあります。これを防ぐためにファイルを送信した後にExit the scriptを送信してください。

+4

PHPタグを閉じないでください。通常は必要ありません。 – TRiG

+3

@TRiG:ちょっと...ええ。 –

+3

神の愛のために、PHPタグをいつも閉じてください。それは悪い習慣です。 –