sorunu hallettim çözümü şöyle

 <?  
$server    = 'ftp://ftp.xxxxyon.com'; //ftp adresi 
$u_name    = 'xxyt'; //user 
$p_word    = 'xxxxxx'; //pass 
$up_file   = 'http://www.xxxxx.net/images/y3.gif';  //dosyayı alacağınız adres 
$srvr_path = '/xxxyon.com/varmi/';   / /upload edilecek yol 
$new_name  = 'aaa.jpg';  //dosyanını yeni adı 

$url = $server . $srvr_path . $new_name; //dosya yolu 

$chi = curl_init($up_file); //dosyayı burada alıyoruz kendi serverımıza 
$fpi = fopen("tmp_file/aaa.jpg", "w"); //geçici klasöre dosyayı yazdırıyoruz 

curl_setopt($chi, CURLOPT_FILE, $fpi);  
curl_setopt($chi, CURLOPT_HEADER, 0); 
curl_exec($chi); 
curl_close($chi); 
fclose($fpi); // işlemi bitirdik 

$fh = fopen("aaa.jpg", "r");   // geçici klasördeki dosyayı okuyoruz 
$ch = curl_init();    
curl_setopt($ch, CURLOPT_URL, $url);    
curl_setopt($ch, CURLOPT_USERPWD, $u_name . ':' . $p_word);  


curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
curl_setopt($ch, CURLOPT_UPLOAD, true);    
curl_setopt($ch, CURLOPT_INFILE, $fh);    
  
curl_setopt($ch, CURLOPT_TRANSFERTEXT, true);    
// File size w/CURLOPT_INFILESIZE must be accurate for clean transfer.  
curl_setopt($ch, CURLOPT_INFILESIZE, filesize("tmp_file/aaa.jpg"));   //upload edilecewk miktarı öğreniyoruz 

$curl_return = curl_exec($ch);  
if ($curl_return === false) {  
    // Show failure info.  
    echo 'curl_exec() failed.' . '<br />';  
    echo 'curl_errno() = ' . curl_errno($ch) . '<br />';  
    echo 'curl_error() = ' . curl_error($ch) . '<br />';  
} else {    
    // Show success info.  
    echo 'curl_exec() succeeded.' . '<br />';  
    echo '<br /><b>curl_getinfo()</b>' . '<br />';  
    foreach (curl_getinfo($ch) as $key => $value) {  
        echo $tab . $key . ' => ' . $value . '<br />';  
    }  
}  
curl_close($ch); // curl işlmeimizi kapatıyoruz 
unlink("tmp_file/aaa.jpg");  // geçici klasördeki dosyayı siliyoruz 
// isterseniz siz silmeyin oradada dursun 
?>