我在A服务器上有脚本1,用户从中请求文件。
我在B服务器上有脚本2(文件仓库),我检查用户是否可以访问它并返回正确的文件(我使用智能文件下载http://www.zubrag.com/scripts/download.php)。
它运行良好。 在脚本1中我应该调用什么来强制下载文件? 一些尝试: 这个可以工作,但我不知道如何处理未授权或下载失败的情况。
这会直接在浏览器中打印pdf代码(而非文本),我认为这是一个头部问题。
这将生成一个空白页面。
我在B服务器上有脚本2(文件仓库),我检查用户是否可以访问它并返回正确的文件(我使用智能文件下载http://www.zubrag.com/scripts/download.php)。
我尝试了cURL和file_get_contents,我以各种方式更改了Content Header,但我仍无法下载文件。
这是我的请求:
$request = "http://mysite.com/download.php?f=test.pdf";
它运行良好。 在脚本1中我应该调用什么来强制下载文件? 一些尝试: 这个可以工作,但我不知道如何处理未授权或下载失败的情况。
header('Content-type: application/pdf');
$handle = fopen($request, "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
这会直接在浏览器中打印pdf代码(而非文本),我认为这是一个头部问题。
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $request);
$contents = curl_exec($c);
curl_close($c);
if ($contents) return $contents;
else return FALSE;
这将生成一个空白页面。
file_get_contents($request);
allow_url_fopen
? - Michael Berkowski