【发布时间】:2011-09-19 02:06:38
【问题描述】:
我在服务器 A 上有 script-1,用户在其中请求文件。
我在服务器 B(文件存储库)上有 script-2,我在其中检查用户是否可以访问它并返回正确的文件(我正在使用智能文件下载http://www.zubrag.com/scripts/download.php)。
我已经尝试过 cURL 和 file_get_contents,我已经以各种方式更改了 Content Header,但我仍然无法下载文件。
这是我的要求:
$request = "http://mysite.com/download.php?f=test.pdf";
而且效果很好。 我应该在 script-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);
【问题讨论】:
-
您的错误信息是什么? php.ini 中是否启用了
allow_url_fopen? -
你的意思是pdf显示在浏览器中而不是下载?
-
不,我的意思是我看到了 pdf 标签和不可读的字符。
标签: php