首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过HTTP从远程服务器复制映像

通过HTTP从远程服务器复制映像
EN

Stack Overflow用户
提问于 2009-05-26 07:27:15
回答 9查看 140.9K关注 0票数 84

我正在寻找一种简单的方法来导入/复制图像从远程服务器到一个本地文件夹使用PHP。我无法通过FTP访问服务器,但所有远程图像都可以通过HTTP (即http://www.mydomain.com/myimage.jpg)访问。

示例用法:用户希望将图像添加到他的配置文件。该图像已经存在于web上,并且用户提供了一个直接URL。我不希望热链接的图像,但从我的域名导入和服务。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-05-26 08:57:37

如果您在服务器上启用了PHP5和HTTP stream wrapper,那么将其复制到本地文件将非常简单:

代码语言:javascript
复制
copy('http://somedomain.com/file.jpeg', '/tmp/file.jpeg');

这将处理任何需要的流水线等。如果你需要提供一些HTTP参数,还有第三个'stream context‘参数可以提供。

票数 157
EN

Stack Overflow用户

发布于 2013-01-17 17:37:35

使用

代码语言:javascript
复制
$imageString = file_get_contents("http://example.com/image.jpg");
$save = file_put_contents('Image/saveto/image.jpg',$imageString);
票数 32
EN

Stack Overflow用户

发布于 2009-05-26 07:43:46

下面是最基本的方法:

代码语言:javascript
复制
$url = "http://other-site/image.png";
$dir = "/my/local/dir/";

$rfile = fopen($url, "r");
$lfile = fopen($dir . basename($url), "w");

while(!feof($url)) fwrite($lfile, fread($rfile, 1), 1);

fclose($rfile);
fclose($lfile);

但是,如果您正在做很多这样的事情(或者您的主机阻止对远程系统的文件访问),请考虑使用CURL,它更高效,速度稍快,并且可以在更多共享主机上使用。

您还可以欺骗用户代理,使其看起来像桌面而不是机器人!

代码语言:javascript
复制
$url = "http://other-site/image.png";
$dir = "/my/local/dir/";
$lfile = fopen($dir . basename($url), "w");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
curl_setopt($ch, CURLOPT_FILE, $lfile);

fclose($lfile);
curl_close($ch);

对于这两个实例,您可能希望通过GD传递它,以确保它确实是一个图像。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/909374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档