Я всегда предпочитаю использовать curl для подобных вещей.
function saveImage($url, $savePath)
{
$ch = curl_init($url);
$fp = fopen($savePath, 'wb');
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
fclose($fp);
curl_close($ch);
return $result;
}
Если у вас не установлен curl, проверьте официальные инструкции по установке curl в PHP , установка curl в Windows довольно проста.