kupidon,
$file = 'https://www.google.ru/images/srpr/logo11w.png';
// Добавляю хэш к имени файла
$file_name = md5(microtime(true).rand(0,999999)).'_'.basename('https://www.google.ru/images/srpr/logo11w.png');
$file=file_get_contents($file);
$file_path='my_folder'.$file_name;
if(empty($file))
throw new \Exception('Could not read remote file');
if(file_put_contents($file_path,$file)<=0)
throw new \Exception('Could not save remote file');
// я бы проверял не заголовки ответа удаленного сервера на запроса изображения,
// а сам полученный файл, на то является ли он изображением или нет