远程服务器复制文件,我想使用PHP通过HTTP文件从一个链接复制这种格式使用PHP通过HTTP
,如果我打开链接,下载的文件开始的。 ..
所以我假设服务器重定向到一个.MP3文件开始下载。
那么如何复制/从远程服务器下载文件到我的服务器(本地主机)?
远程服务器复制文件,我想使用PHP通过HTTP文件从一个链接复制这种格式使用PHP通过HTTP
,如果我打开链接,下载的文件开始的。 ..
所以我假设服务器重定向到一个.MP3文件开始下载。
那么如何复制/从远程服务器下载文件到我的服务器(本地主机)?
我假设这里说的远程服务器发送HTTP上的完整文件。您可以使用库(如curl
)发送HTTP请求并将接收到的数据作为文件存储(使用CURLOPT_FILE
)。
如果本地PHP服务器配置正确,你也可以用copy
从远程URL复制到本地路径。
你能否提供我使用这两种方法的例子? – sikas 2010-10-13 17:01:48
对于第二种方法,我链接到的页面上有一个示例。我心情很好,所以我会提供一个直接的链接(http://fr.php.net/manual/en/function.copy.php#83955),但您可能需要处理您的文档技巧。 – 2010-10-13 17:04:04
只是为了戈夫什么维克多与卷曲tlking约一个例子:
$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);
正如我在你的例子中可以看到的,.mp3文件的路径被设置,但我不知道.mp3文件的网址! – sikas 2010-10-13 17:08:59
多数民众赞成你想下载它的路径...你不需要知道远程服务器上的文件的路径,只要该url正在返回文件。 – prodigitalson 2010-10-13 17:09:57
+1教我关于'curl_setopt_array()'!以前从未听说过它。 – chigley 2010-10-13 17:58:41
$处理=的fopen( “http://www.example.com/”, “RB”); $ contents =''; 而{$ 内容=的fread($处理,8192)(FEOF($处理)!)。 } fclose($ handle);
从
尝试使用通知回调(读此处MOR信息http://www.php.net/manual/function.stream-notification-callback.php)
例如你可以到这一点,如果你想复制:
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_transferred和$ bytes_max,并显示一个漂亮的进度条。
你能告诉我们你如何试图实现这一目标? (code) – Claudiu 2010-10-13 16:58:29