0

外部ダウンロードをユーザーに渡す方法がPHPにあるかどうか疑問に思っていましたか? スクリプトでやりたいことは、特定の条件に応じて、サーバー A またはサーバー B からユーザーにファイルを送信することです。ただし、ユーザーにいずれかのサーバーへの直接の URL を知らせたくありません。

例: ユーザーのアクセス (サーバー C にある): http://example.com/download?id=1234 サーバー A のファイルへのアドレス: http://servera.com/1234.exe サーバー B のファイルへのアドレス: http: //serverb.com/1234.exe

誰かがhttp://example.com/download?id=1234にアクセスしたときに、ユーザーに直接 URL を提供せずに他のサーバーのダウンロードを送信する方法はありますか? ファイル ([外部ファイルはこちら]) を実行できることはわかっています。しかし、すべての帯域幅がサーバー C を通過することは望ましくありません。サーバー C はほとんど単なるリダイレクトです。

ありがとう、ジェームズ

4

2 に答える 2

2

クライアントは、ダウンロード元のサーバーをある程度知っている必要があります。そうしないと、クライアントに接続できません。

編集:

ブラウザのアドレス バーを変更したくない場合は、次のContent-dispositionようにヘッダーを使用してみてください。

header("Content-disposition: attachment;filename=1234.exe");
//then output the file contents

注: この PHP スクリプトはサーバー A とサーバー B に存在する必要があります。そのため、サーバー C はhttp://servera.com/download.phpまたはhttp://serverb.com/download.phpにリダイレクトされます。

于 2009-07-01T15:14:07.463 に答える
0

ハム

NAT またはプロキシを使用することで、可能になる場合があります。しかし、これは非常に難しいでしょう。

ヘッダーを変更するだけでは、おそらく機能しません。

編集:いいえ、すべてのサーバーのプロキシを一度に追加する必要があると思います (例: ゲートウェイ)。

于 2009-07-01T15:21:23.907 に答える