4

私は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/

4

1 に答える 1

2

mod xsendfile のドキュメントを参照してください。ファイルを提供できるディレクトリを設定する必要があります。それを行った場合、シンボリックリンクが提供されていないなど、他の問題が疑われます....

于 2012-07-10T13:52:48.607 に答える