php Amazon S3通过公共URL下载图像文件

ewm0tg9j  于 2023-02-28  发布在  PHP
关注(0)|答案(1)|浏览(144)

我已经上传了我的图像使用亚马逊S3服务在这个位置“https://s3.amazonaws.com/qbprod/“上传后,我得到的回应一样
https://s3.amazonaws.com/qbprod/70dcdd564f5d4b15b32b975be15e4a1200
我试着用以下方法来塑造形象,但没有成功。

(1)................
    $xman = explode("/",$ImageSTR);
    //$saveto = end($xman).'.jpg';
    $saveto = end($xman);
    $fl = file_get_contents($ImageSTR);
    file_put_contents('abcd.jpg',$fl);

(2)................
    grab_image($ImageSTR,$saveto);  

    function grab_image($url,$saveto){
        $ch = curl_init ($url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
        $raw=curl_exec($ch);
        curl_close ($ch);
        if(file_exists($saveto)){
            unlink($saveto);
        }
        $fp = fopen($saveto,'x');
        fwrite($fp, $raw);
        fclose($fp);
    }

提前感谢您

pgky5nke

pgky5nke1#

您可以看到这是https,您需要像这样使用CURLOPT_SSL_VERIFYPEER

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

这是最终函数

function grab_image($url,$saveto){
    $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $raw=curl_exec($ch);
    curl_close ($ch);
    if(file_exists($saveto)){
        unlink($saveto);
    }
    $fp = fopen($saveto,'x');
    fwrite($fp, $raw);
    fclose($fp);
}

您可以阅读此处了解更多CURL http://php.net/manual/en/function.curl-setopt.php
希望这能有所帮助!

相关问题