PHP从不同的受密码保护的服务器下载文件

时间:2014-06-03 07:57:51

标签: php download

我正在构建一个允许用户下载某些pdf文件的应用程序,但这些文件存储在受密码保护的其他服务器上,密码已知。 将这些文件传递给用户的最佳方法是什么。

MyAppIP/applicationfiles.php
FilesIP/PDF-Files/file1.pdf <-- this is password protected, but I know the pass.

我正在考虑首先将文件保存在我自己的服务器上,因为它们的最大大小为100kb。然后将它们传递给用户并再次删除本地文件,但我还没有完全弄清楚如何从其他服务器获取文件。
那么如何从php中的不同服务器获取文件?

2 个答案:

答案 0 :(得分:3)

您可以使用CURL从受保护服务器下载文件。 CURL还支持许多授权方法。 http://www.php.net/manual/en/function.curl-setopt.php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'FilesIP/PDF-Files/file1.pdf');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "Login:Password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$file = curl_exec($ch);
curl_close($ch);

file_put_contents('/var/www/file.pdf', $file);

// return download link to user
// <a href="file.pdf">Download</a>

答案 1 :(得分:0)

如果auth是基本http 并且你已经安装了curl,你可以使用它:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
curl_close($ch);