使用php代码从URL下载图像?

2022-08-30 23:06:24

我如何使用php从URL下载图像(例如:https://www.google.com/images/srpr/logo3w.png)然后保存它?这就是我到目前为止想到的,它给了我一个“file_put_contents”函数的错误。

<form method="post" action="">
<textarea name="text" cols="60" rows="10">
</textarea><br/>
<input type="submit" class="button" value="submit" />
</form>

<?php
    $img = "no image";
    if (isset($_POST['text']))
    {
    $content = file_get_contents($_POST['text']);
    $img_path = '/images/';
    file_put_contents($img_path, $content);    
    $img = "<img src=\"".$img_path."\"/>";
    }
    echo $img;
?>

它给了我一个错误:

[function.file-put-contents]: failed to open stream: No such file or directory in C:\wamp\www\img.php

该目录位于php文件的同一目录中,并且是可写的。/images/


答案 1

您无法使用现有代码保存图像,因为您没有提供文件名。您需要执行如下操作:

$filenameIn  = $_POST['text'];
$filenameOut = __DIR__ . '/images/' . basename($_POST['text']);

$contentOrFalseOnFailure   = file_get_contents($filenameIn);
$byteCountOrFalseOnFailure = file_put_contents($filenameOut, $contentOrFalseOnFailure);

答案 2

file_put_contents()要求第一个参数是文件名而不是路径。


推荐