2008-09-17 24 views
20

X-SendfileやPHP用のサンプルコード(多くの場合、いくつかのレールコードがあります)に関する多くのドキュメントを見つけることができません。Apache/PHPでのX-Sendfileの使用

誰でも以前に使ったことがあり、簡単なコードと簡単な説明を書いてもらえますか?

header("X-Sendfile: $filename"); 

正しく設定されている場合あなたのウェブサーバがそれを拾っ:

答えて

27

X-sendfileのは、あなたがこのような何かをしたいので、HTTPヘッダです。ここではいくつかの詳細があります:

http://www.jasny.net/articles/how-i-php-x-sendfile/

+0

私はリンクのチュートリアルに従いましたが、mod-xsendでファイルをダウンロードすると、ファイルサイズがバイナリファイル(0バイト)になります...どうしましたか?更新:自分自身を考え出した。 '親ディレクトリからファイルを送る#enable->' XSendFileAllowAbove On'を私の.htaccessファイルに追加する必要がありました。私のダウンロードはwebrootフォルダから外されています。 –

+3

将来の読者のために:XSendFileAllowAboveは廃止されました。 XSendFilePathを使用する – Oli

2

Webサーバの設定を微調整することはできない場合は、PHPの標準readfile() functionを検討してください。それはsendfilingほど速くはありませんが、より広く互換性があります。また、これを行うときに、少なくともContent-Typeヘッダーも送信する必要があります。

+0

'readfile()'を使うと、再開や部分ダウンロード(Request-Range)やクライアントのキャッシュをサポートしないことに注意してください。 PHPコードでこれをすべて処理する必要があります。そのまわりにいくつかのコードスニペットがあるはずです)。 – Ale

1

はい、PHPにX-Sendfile in this pageを示す詳細なサンプルコードがあります。また、this parent siteもダウンロードしてインストールする必要があります。私はチュートリアルに続き、それは魅力のように私のために働いた。