错误0字节将图像保存到本地或其他服务器时


function grab_image($url, $saveto){
        $url = $url;
        $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, 'w');
        fwrite($fp, $raw);
        fclose($fp);
    }
$link = 'https://images-na.ssl-images-amazon.com/images/I/415lKuJC%2B2L.jpg';
grab_image($link, '/tmp/415lKuJC%2B2L.jpg');

当保存到本地文件(0字节)时,我认为此链接具有特殊字符为%2B

尝试在函数调用中添加文件名,如下:

grab_image($link, "/tmp/new_file_name.jpg");

使用原始文件名获取文件的替代解决方案:

function grab_image($url, $savePath = getcwd())
{
    $path = $savePath.'/'.basename($url);
    if (file_exists($path)) {
        unlink();
    }
    copy($url, $path);
}
$link = 'https://images-na.ssl-images-amazon.com/images/I/415lKuJC%2B2L.jpg';
grab_image($link);

最新更新