Birkaç gün önce bana da lazım olmuştu. Ancak cURL (CURLOPT_FILE) bende de sorun çıkartmıştı. Ben aşağıdaki fonksiyonu kullanıyorum. Proxy vs. özelliği yok. Sade bir fonksiyon.
function download_file($link, $folder = '', $name = null) // Ex: download_file('eat.me/img.jpg', 'resimler/');
{
	global $wordpress;

	$link_info = pathinfo($link);
	$extension = strtolower($link_info['extension']);
	$file = !is_null($name) ? $name.'.'.$extension : $link_info['basename']; 

	$data = get_contents($link);
	$fp = fopen($folder . $file, 'w');
	fwrite($fp, $data);
	fclose($fp);

	return 'http://' . $_SERVER['HTTP_HOST'] . '/' . $folder . $file;
}

function get_contents($url)
{
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$rdata = curl_exec($ch);
	curl_close($ch);
	return $rdata;
}