• 21-01-2009, 02:59:56
    #1
    arkadaşlar kodlar çalışıyor.
    dosyayı oluşturuyor ama içeriği yazmıyor. bir yerde eksik var blgisi olan arkadaşlar yardımcı olursa sevinirsim.
     <?
         $ch = curl_init("http://www.smashingmagazine.com/images/wallpapers-two/AssafBen-Ari.jpg");
         curl_setopt($ch, CURLOPT_URL, 'ftp://roma:856464@ftp.xxxxom.com/xxxx/http/images/a.jpg');
         curl_setopt($ch, CURLOPT_UPLOAD, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_exec ($ch);
        
         $error_no = curl_errno($ch);
         curl_close ($ch);
            if ($error_no == 0) {
                $error = 'basaririli.';
            } else {
                $error = 'hata var.';
            }
    ?>
    normlade fopen ve fwrtie ile yazabiliriz ama burada uzak ftp ye url den dosya upload olayı var. dosyayı ftp de oluşturuyorum ama içeriği boş oluyor yani 0 bytes
  • 21-01-2009, 04:01:02
    #2
    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 
    ?>
  • 21-01-2009, 11:03:24
    #3
    ipucu: çektiğiniz dosya resim flnsa, çoğu defa file_get_contents() işinizi görebilir.
  • 21-01-2009, 15:33:24
    #4
    bir çok serverda file_get_contents() çalışmaz o nedenle curl hem daha hızlıdır hem de güvenlidir. Aöa teşekkür ederim
  • 21-01-2009, 15:43:26
    #5
    Üyeliği durduruldu
    hakimi adlı üyeden alıntı: mesajı görüntüle
    bir çok serverda file_get_contents() çalışmaz o nedenle curl hem daha hızlıdır hem de güvenlidir. Aöa teşekkür ederim
    aksine curl extension olduğu için calismayabilir file get content yerine fopen bile kullanabilirsiniz yoksa file da
  • 22-01-2009, 14:40:50
    #6
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    aksine curl extension olduğu için calismayabilir file get content yerine fopen bile kullanabilirsiniz yoksa file da
    aynen

    curl ile çalışmanız için apache'e ilave edip derlemeniz gerek.
    ama file_get_contents , fopen gibi fonksiyonlar çalışır. çalışmaması için özel olarak kapatılmış olması gerekir

    not: suPHP ile çalışıyorsanız public_html içinde kendiniz bir php.ini oluşturdugunuzda, php bunu baz alarak çalışır.
    not2: bu güvenlik açıklarına sebep olabilir, dso'a çevirerek engelleyebilirsiniz.