使用cURL将外部文件保存到我的服务器

时间:2011-08-17 22:40:37

标签: php mysql curl

我有一个网站来展示开源电影和视频。

我已在mysql中保存了网址,并将视频和图片都链接到了内容服务器。

但是用户抱怨网站速度慢,因为图像是从外部获取的,大多数时候Internet Explorer甚至都没有显示图像。

我刚刚了解了cURL,并希望将图像和视频保存到我自己的服务器上,并为原始网站提供镜像。

我在很多地方都有“curl -O('');”语法来执行任务,但不知道如何在我的php脚本中使用它。

简而言之: 我已经将我的表单保存在mysql中。我希望它还将保存文件保存到我的网络服务器上的目录中,并将文件路径保存到mysql中的另一列。

欢迎任何形式的帮助。 Thanx in Advance

1 个答案:

答案 0 :(得分:10)

$local_file = "/tmp/filename.flv";//This is the file where we save the information
$remote_file = "http://www.test.com/filename.flv"; //Here is the file we are downloading


$ch = curl_init();
$fp = fopen ($local_file, 'w+');
$ch = curl_init($remote_file);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_exec($ch);
curl_close($ch);
fclose($fp);

我决定更新这个答案几乎 7 年后。
对于那些为远程主机启用copy()的用户,您只需使用:

copy("http://www.test.com/filename.flv", "/some/local/path/filename.flv");