首页 > 解决方案 > 使用 PHP 以编程方式保存远程图像

问题描述

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

假设我只有图像的 URL:

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[]数组。或者可能有其他方法?

标签: phpimageuploadreadfileoutput-buffering

解决方案


$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

推荐阅读