私はapache2 Webサーバーを使用しており、mod_xsendfileをインストールしました。次のようなものがあります。
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="file.zip"');
//header("X-Accel-Redirect: /file/protected/file.zip"); //for nginx server
header('X-Sendfile: /protected/file.zip');
exit();
/etc/apache2/apache2.conf で有効にしました:
XSendFile on
/file/index.php の [ダウンロード] ボタンをクリックすると、/file/ にある index.php というエラーが表示されます。
最初に動かしheader('X-Sendfile: /file/protected/file.zip');
てみましたが同じです..
使用するheader("X-Accel-Redirect: /file/protected/file.zip");
と動作しますが、空の.zipファイルが表示されます.とにかく、apache2サーバーではありません..
ファイルは数KBしかありません
誰でもそれを修正する方法を知っていますか?
編集: error.log に表示されます: 指定されたパスはルート パスの上にありました: xsendfile: ファイルが見つかりません: /protected/file.zip
XSendFilePath /protected を設定すると、エラーは次のようになります。
(2)No such a file or directory: xsendfile cannot open file: /protected/file.zip,referer: http://domain.com/file/