0

MacOSXサーバーのApacheWebサーバーにx_sendfileをインストールしようとしています。インストールですべてが正常に見え、httpd.confは 「LoadModulexsendfile_modulelibexec / apache2/mod_xsendfile.so」 および 「XSendFileON 」で構成されています。

ターミナルから「httpd-M」を実行すると、リストに「xsendfile_module(shared)」と表示されます。

ただし、phpinfo()またはapache_get_modules()では、x-sendfileはリストされていません。PHPコードでx-sendfileを使用してファイルをダウンロードしようとすると、ブラウザーは0kbのファイルをダウンロードするだけです。ただし、ヘッダーデータにx-sendfileヘッダータグが表示されます。

助言がありますか?

4

2 に答える 2

1

httpd.conf ファイルにこの行があることを確認してください。ページの設定の下に追加します。

XSendFile オン XSendFilePath /dir-where-the-file-gets-downloaded-from/

于 2012-09-11T22:30:33.063 に答える
0

CentOS でも同様の問題が発生しました。追加した:

XSendFile On 
XSendFilePath /dir-where-the-file-gets-downloaded-from/

httpd.confに、ただし、phpページ自体で絶対パスを使用することも確認しました

header('Content-Type: '.$formatMIME);
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=User_sees_this.pdf"); 
header("X-Sendfile: 'absolute_path_goes_here'");

httpd -M がモジュールをインストール済みとして表示しているかどうかを知る限り、上記のコードは機能するはずです。xsendfile は php の拡​​張子ではないため、phpinfo には表示されません。apache_get_modules() と話すことができません。

繰り返しますが、これは私の個人的な経験に基づくコメントであり、決定的な回答を意図したものではありません。

于 2013-07-12T18:32:37.160 に答える