代码之家  ›  专栏  ›  技术社区  ›  yevg

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

  •  0
  • yevg  · 技术社区  · 6 年前

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

    假设我只有图像的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[] 此方法下的数组。或者可以采取其他方法?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Cythral    6 年前

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

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

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

        2
  •  1
  •   James Lalor    6 年前
    $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