使用PHP over HTTP从远程服务器复制文件

使用PHP over HTTP从远程服务器复制文件,php,Php,我想使用PHP over http从这种格式的链接复制一个文件 如果我打开链接,文件下载就会开始 所以我假设服务器重定向到一个.mp3文件开始下载 那么如何将文件从远程服务器复制/下载到我的服务器(本地主机)?我在这里假设远程服务器通过HTTP发送完整的文件。您可以使用库,例如发送HTTP请求并将接收到的数据存储为文件(使用CURLOPT_file) 如果本地PHP服务器配置正确,还可以使用从远程URL复制到本地路径 举一个维克托用卷发做什么的例子: $options = array( C

我想使用PHP over http从这种格式的链接复制一个文件

如果我打开链接,文件下载就会开始

所以我假设服务器重定向到一个.mp3文件开始下载


那么如何将文件从远程服务器复制/下载到我的服务器(本地主机)?

我在这里假设远程服务器通过HTTP发送完整的文件。您可以使用库,例如发送HTTP请求并将接收到的数据存储为文件(使用
CURLOPT_file


如果本地PHP服务器配置正确,还可以使用从远程URL复制到本地路径

举一个维克托用卷发做什么的例子:

$options = array(
  CURLOPT_FILE => '/local/path/for/file.mp3',
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_URL => 'http://myserver.com/?id=1234',

);

$ch = curl_init();
curl_setopt_array($ch, $options);
curl_exec($ch);
$handle=fopen(“http://www.example.com/“,“rb”); $contents=''; 而(!feof($handle)){ $contents.=fread($handle,8192); } fclose($handle)


尝试使用通知回调(阅读此处了解更多信息)

e、 g.如果您想复制,您可以复制此文件:

function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max)
{
  if($notification_code == STREAM_NOTIFY_PROGRESS)
  {
    // save $bytes_transferred and $bytes_max to file or database
  }
}


$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));
copy($remote_url,$Local_target,$ctx); 

另一个PHP文件可以读取已保存的$bytes\u transfer和$bytes\u max,并显示一个漂亮的进度条。

您能告诉我们您是如何尝试实现这一点的吗?(代码)你能给我提供两种方法的例子吗?对于第二种方法,我链接的页面上有一个例子。我心情很好,所以我将提供一个直接链接(),但您可能需要提高您的文档技能。正如我在您的示例中所看到的,设置了.mp3文件的路径,但我不知道.mp3文件的url!这也是你想要下载它的路径。。。只要url返回文件,您就不需要知道远程服务器上文件的路径。+1用于教我有关
curl\u setopt\u array()
!以前从未听说过它。
CURLOPT_文件
必须是文件句柄而不是文件名