使用PHP以编程方式保存远程图像

时间:2018-05-16 15:22:19

标签: php image upload readfile output-buffering

我正在尝试将一些内容从一个资源迁移到另一个资源,并且需要保存位于远程资源的一些图像(几百个)。

假设我只有图片的网址:

https://www.example.com/some_image.jpg

我想使用PHP将其保存到文件系统中。

如果我上传图片,我基本上会做以下事情:

<input type="file" name="my_image" />

move_uploaded_file($_FILES['my_image']['tmp_name'], '/my_img_directory');

但由于我只有URL,我会想象:

$img = 'https://www.example.com/some_image.jpg';
$file = readfile($img);
move_uploaded_file($file, '/my_img_directory');

由于move_uploaded_file()没有将输出缓冲区作为第一个参数,因此当然无效。

基本上,我需要在此方法下将$img放入$_FILES[]数组中。还是可以采取其他方法?

2 个答案:

答案 0 :(得分:1)

$image = file_get_contents('http://www.url.com/image.jpg');
file_put_contents('/images/image.jpg', $image); //Where to save the image on your server

答案 1 :(得分:1)

您可以使用PHP的复制功能将远程文件复制到服务器上的某个位置:

copy("https://example.com/some_image.jpg", "/path/to/file.jpg");

http://php.net/manual/en/function.copy.php