2017-07-17 25 views
-1

別のサーバBにあるファイルのダウンロードを「プロキシ」するにはサーバAを使用する予定です。ユーザはサーバAのリンクをクリックしてサーバBのファイルをダウンロードします。外部サーバからのPHP読み込みファイル、どのIP?

私は知っていますphpのreadfile()関数について、私はそれにURLを渡すときに働いています(例えば、http://serveurB/file.pdf)。

しかし、サーバーBにはどのような情報がありますか。彼はユーザーがファイルをダウンロードしていることを知っていますか、またはサーバーAがファイルをダウンロードしていると思いますか?ここ

が私のコードです:デフォルトでは

$filename = $download_url[1]; 

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
header('Content-Type: ' . finfo_file($finfo, $filename)); 
finfo_close($finfo); 

header('Content-Disposition: attachment; filename='.basename($filename)); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($filename)); 
ob_clean(); 
flush(); 
readfile($filename); 
exit; 
+0

リンクがサーバーBにある場合、Bは知っている必要があります。 –

+2

あなたは単にあなたが念頭に置いているものを試し、 "サーバBが見ている"ものを自分で確認してみませんか? – arkascha

+0

それ以外では、HTTPサーバーリライトモジュールを使用して、そのような要求をプロキシすることを見てください。 – arkascha

答えて

1

、あなたの説明とサンプルコードを使用して、ターゲット・サーバ(「サーバBは、」)「サーバA」に元のユーザーの要求を認識しません。

PHPスクリプト(A)を実行しているサーバーは、ファイルを取得するためにサーバーBにHTTP 1.0 GET要求を行います。

ソース:http://php.net/manual/en/wrappers.http.php

関連する問題