問題タブ [x-sendfile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - RewriteEngine と XSendFile の競合
次のPHPコードがあります
スクリプトを直接呼び出すと (http://localhost/site/get2.php?ftype=flv&filename=a56.flv) 正常に動作しますが、(http://localhost/site/vsrc_a56.flv) で呼び出すとすぐに404 ページと次の apache エラーを返します。
私の .htaccess ファイルは以下のようなものです:
apache - MAMPにApacheモジュールX-Sendfileをインストール
MAMPが使用できるように、X-Sendfile apacheモジュールをインストールするにはどうすればよいですか?
これらの指示に従ってX -Sendfile をインストールしましたが、うまくいきませんでした (デフォルトの apache インストール用にインストールしたようです)。また、手動で にコピーしようとしまし/usr/libexec/apache2/mod_xsendfile.soた/Applications/MAMP/Library/modules/が、Apache の再起動時に次のエラーが発生しました。
Cannot load /Applications/MAMP/Library/modules/mod_xsendfile.so into server: cannot create object file image or add library
django - ファイルやデータベースを更新せずにutf-8ファイルでX-sendfileを使用する
私のサイトには、x-sendfileを使用して提供したい何千ものドキュメントがあります。残念ながら、それらの多くはタイトルにファンキーなutf-8文字を含んでおり、HTTPがutf-8をサポートしていない場合、x-sendfileも正確にはサポートしません。
ファイルの名前をURLエンコードするように変更し、それらの値をミラーリングするようにデータベースを更新することで、x-sendfileを正しく機能させることができますが、ファイルが非常に多いため、すべての名前を付けておくのは馬鹿げています。私のOS(および他のほとんどすべて)がutf-8をサポートしている場合のさまざまなURLエンコーディング。
ファイル名とデータベースを変更せずにx-sendfileを使用する方法はありますか?
php - 「隠し」ファイルを表示するためのX-Sendfileヘッダー送信者の構築
今日、問題が発生しました。これは、一部のファイルを公開しないようにする必要があるというものです。実際、これらは「ユーザー固有の」ファイルであるため、所有者以外の人はそれらを見ることができないはずです。
他のオプションがある場合は、 freadなどでファイルを読みたくなかったので、問題について調査したところ、SOの他のスレッドでapache用のX-Sendfilemodが見つかりました。
ほぼ必要に応じて動作します。1つを除いて。ファイルはhtaccessで非表示になり、「ワールド」には表示されません。認証後にX-Sendfileヘッダーを使用してファイルを提供できます。
しかし、誰かがphpスクリプトを作成した場合、私のものと同じことは何をしますか?ユーザーはファイルのURLを覚えているかもしれません。ファイルはそれらのために利用可能になります。それは良くないね...
所有者以外の人が許可なくファイルにアクセスするのを防ぐために私ができることはありますか?最初はnginxのソリューションが必要です。
ファイルはPHPのないサーバー上にあり、静的ファイルサーバーにすぎません。
ファイルを他のディレクトリに移動しても機能しません。それははるかに苦痛になります。
ありがとうございました
更新 ダウンロードしたファイルが0Kbかそのようなものであったことを見逃したようです。これは、もう一度トリックを実行できなかったためです。
php - X-Sendfileを使用してファイルのファイル名をダウンロード
X-Sendfileを使用して、readfileの代わりにファイルを送信しています。これを処理するスクリプトはdownload.phpという名前で、次のものが含まれています。
しかし、問題は、ダウンロードされたファイルの名前が常に「download.php」(155Mb)であり、file.mp4という名前でダウンロードしたいということです。私は次のようないくつかのことを試しました:
そして他のすべての可能性、しかしそれでもdownload.phpとしてファイルをダウンロードします。
私のhtaccessファイルには次のものが含まれています:XSendFile On
django - mp3は正常に送信されましたが、mp4は送信されませんでした(Django&X-Sendfile)
私のウェブページで再生をクリックすると、mp3ファイルがサーバーから送信され、ブラウザには送信された3つのリクエストのみが表示されます。応答X-Sendfileヘッダーに追加しましたが、応答はそれなしで到着したので、mod_xsendfileが正常に構成されていることを理解しています。
奇妙なことに、 mp4で[再生]をクリックすると、ブラウザが何百ものリクエストを送信し始め、ムービーが開始されてスタックします。ここの応答に「X-Sendfile」ヘッダーはありません...
cideo要素のソースを別のサイトのmp4ファイルに変更すると、すべて問題ありません(映画はスムーズに実行され、リクエストはわずかです)。
何が問題ですか?
いくつかのコード...
HTML:
.htaccess:
応答ヘッダー:(mp4の)
php - X-SendFile との契約は何ですか?
いろいろ調べてみると、PHP スクリプトからブラウザーベースのクライアントにダウンロード可能な大きなファイルを提供する方法として、X-Sendfile を推奨している人が多いようです。
私が調べているいくつかの方法は次のとおりです。
- ストリーミング fopen
- ストリーミング cURL
- file_get_contents
- カール
- X-Sendfile
これらのうち、ほとんどの人が X-Sendfile が最高だと言っています。
問題は、大きなファイルを処理できるだけでなく、ほとんどのサーバーで広く普遍的なダウンロード方法を実装しようとしていることです。これは、私が書いているスクリプトが自分のサーバーだけでなく他の多くのサーバーでも使用されるためです。
私の質問は、X-Sendfile がこれほど優れている理由は何ですか? それがとても良いのに、なぜ私はそれについてあまり耳にしないのか、なぜもっと頻繁に使用されないのか? 最後に、一般的な低予算の共有 Web ホストのほとんどは X-Sendfile をサポートしますか?
ありがとう!
php - X-Sendfile エラー、ファイルが見つかりません
私はapache2 Webサーバーを使用しており、mod_xsendfileをインストールしました。次のようなものがあります。
/etc/apache2/apache2.conf で有効にしました:
/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/
apache - 致命的なエラー:x-sendfile mac os xMountainlionサーバーのインストール時に「apr.h」ファイルが見つかりません
LionServerをMountainLionにアップグレードすると、mod_xsendfileがapacheから削除されたようです。
このWebサイトの指示に従いましたが、「そのようなファイルまたはディレクトリはありません」というエラーでスタックしました。グーグルの助けを借りて、私はこれに対する解決策を私に与えたこのページを見つけました: "sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/ Toolchains / OSX10.8.xctoolchain "
見た目は良さそうですが、「sudo apxs -cia mod_xsendfile.c」を実行しようとすると、「致命的なエラー:「apr.h」ファイルが見つかりません」というエラーが発生します。
何か案は?