【问题标题】:PHP Redirect a file from another server to end userPHP 将文件从另一台服务器重定向到最终用户
【发布时间】:2013-12-06 06:28:28
【问题描述】:

我希望能够允许用户在变量 URL 中输入他们想从远程服务器 URL 下载的文件,例如 /download.php?url=fvr_anim_foxintro_V4_01.jpg

<?php 
$url = $_GET['url'];
header("Location: http://fvr.homestead.com/files/animation/" . $url);
?>

以上纯粹是我从谷歌图片中抓取的一个例子。问题是我不希望最终用户被允许查看文件的原始来源,因此需要将文件下载到服务器,然后服务器将其传递给最终用户。有没有办法做到这一点?

我找到了许多托管在服务器上的文件的示例,但没有提供托管在远程服务器上的文件的示例。换句话说,我会传递它们。文件会很大(最多 100MB)

提前致谢!

【问题讨论】:

标签: php redirect curl get download


【解决方案1】:

您可以为此使用 cURL:

<?php
$url = "http://share.meebo.com/content/katy_perry/wallpapers/3.jpg";

$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

// Getting binary data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);

$image = curl_exec($ch);
curl_close($ch);

// output to browser
header("Content-type: image/jpeg");
echo $image;
?>

来源:http://forums.phpfreaks.com/topic/120308-solved-curl-get-image/

当然,此示例仅用于图像(如您所建议的),但您可以使用 cURL 通过 HTTP GET、POST、PUT、DELETE 等进行各种远程数据检索。在网上搜索“ php curl”,你会发现无穷无尽的信息。

【讨论】:

    【解决方案2】:

    理想的解决方案是使用PHP's cURL Library,但如果您使用共享主机,请记住此库可能已被禁用。

    假设您可以使用 cURL,您只需使用适当的 MIME 类型回显 Content-type 标头并回显来自 curl_exec() 的结果。

    要了解如何使用 cURL 库的基本概念,请查看 curl_init() 函数下的示例。

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      相关资源
      最近更新 更多