Как мне использовать мой сервер в качестве прокси для загрузки файлов через PHP? - PullRequest
5 голосов
/ 29 октября 2010

Мне нужно, чтобы мой сервер действовал как прокси-сервер между сторонним сервером (на котором изначально расположен файл) и конечным пользователем. То есть мой сервер загружает файл со стороннего сервера, а затем пользователь скачивает его с моего сервера. Это должно привести к увеличению пропускной способности в два раза по сравнению с размером файла. Как можно добиться этого процесса с помощью PHP?

Ответы [ 2 ]

13 голосов
/ 29 октября 2010

Очень очень просто, как это:

$url = $_GET['file'];
$path_parts = pathinfo($url);

$ext = $path_parts['extension'];
$filename = $path_parts['filename'];

header("Content-type: application/$ext");
header("Content-Disposition: attachment; filename=$filename");

echo file_get_contents($url);

Если размер файла превышает несколько мегабайт, используйте fopen fread и frwrite, загрузите файл кусками и отправьте клиенту кусками.

7 голосов
/ 27 января 2015
        $fp = fopen($url, 'rb');
        foreach (get_headers($url) as $header)
        {
            header($header);
        }

        fpassthru($fp);
        exit;

Это просто загрузит удаленный файл в браузер с правильными заголовками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...