• 15-11-2010, 14:30:16
    #1
    Üyeliği durduruldu
        $link_info = pathinfo($file);
        $local = '../import/'.$link_info['basename'];
        $curl = curl_init($file);
        $fopen = fopen($local,'w');
        curl_setopt($curl, CURLOPT_HEADER,0);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        curl_setopt($curl, CURLOPT_FILE, $fopen);
        $exec = curl_exec($curl);
        curl_close($curl);
        fclose($fopen);
    bu kodda $file değişkeni harici bir XML uzantılı bir dosyadır geri kalan dizinlere yazma izni verildi ama harici bağlantı istediğim adrese "$local" dosyayı indirmiyor

    cevaplarınız için şimdiden teşekkürler
  • 15-11-2010, 15:07:25
    #2
    <?php
    $file = file_get_contents('http://dosyaurlsi');
    file_put_contents($file,'kaydedilecekdizin');
    ?>
    anladığım kadarıyla başka bir yerden sunucuna dosya indirmeye çalışıosun bunu denermisin denemedim çalışır büyük ihtimal
  • 15-11-2010, 15:47:12
    #3
    Üyeliği durduruldu
    malesef dosyayı eklemiyor.. nerde hata yapıyorum acaba
  • 15-11-2010, 17:15:25
    #4
        $link_info = pathinfo($file); 
        $curl = curl_init(); 
        curl_setopt($curl, CURLOPT_URL, $file);
        curl_setopt($curl, CURLOPT_HEADER,0); 
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); 
        curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); 
        $exec = curl_exec($curl); 
        curl_close($curl); 
        $local = '../import/'.$link_info['basename']; 
        $fopen = fopen($local,'w');
        fwrite ( $fopen , $exec ) ;  
        fclose($fopen);
    bir de böyle dener misin? sanki fwrite eksikmiş gibi geldi bana...
  • 15-11-2010, 17:20:01
    #5
    Üyeliği durduruldu
    Dosyayı açmışssın ama içine veri yapmamışsın.
    digiklan'ın dediği gibi yaparsan yazar veriyi dosyaya.
    kcyg17 adlı üyeden alıntı: mesajı görüntüle
        $link_info = pathinfo($file);
        $local = '../import/'.$link_info['basename'];
        $curl = curl_init($file);
        $fopen = fopen($local,'w');
        curl_setopt($curl, CURLOPT_HEADER,0);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        curl_setopt($curl, CURLOPT_FILE, $fopen);
        $exec = curl_exec($curl);
        curl_close($curl);
        fclose($fopen);
    bu kodda $file değişkeni harici bir XML uzantılı bir dosyadır geri kalan dizinlere yazma izni verildi ama harici bağlantı istediğim adrese "$local" dosyayı indirmiyor

    cevaplarınız için şimdiden teşekkürler
  • 15-11-2010, 17:25:28
    #6
    Üyeliği durduruldu
    yok malesef işlem başarılıymış gibi
    if ($exec)
    return true;
    diyerek birde başarılı yazısı yazmıştım başarılı gözüküyor ama klasöre dosya kopyalanmıyor

    dosyayıda ellemi oluşturmak gerekli. yada bu kodların arasına bu dosyayı açmak gereklimi yoksa cURL bunu otomatik olarak yapıyormu?
  • 15-11-2010, 17:27:29
    #7
    Üyeliği durduruldu
    şimdi bu sefer fwrite a bir değer atadım ve if ($exec2) diye başladım bunu başaramıyor curl_exec çalışıyor ama fwrite çalışmıyor fwrite false dönüyor..
  • 15-11-2010, 17:34:23
    #8
    fopen başarılı mı?
    fwrite başarısızsa 3 nedeni olabilir,
    1 fopen dan false geliyordur
    2 curl_exec den false geliyordur
    3 yazma dizininde izin yoktur

    ki bana senin problemin alt klasöre inmek için yazdığın noktalardan kaynaklanıyor gibi geliyor. '../import/'.$link_info['basename']; yerine
    c:/server/htdocs/import...
    ya da home/siten/public_html...
    falan gibi tam dizin adresi yazarak dener misin?

    birder eğer localhost değil de hosting hesabında falan çalışıyorsan bazı sunucularda safe_mode on durumlarda fopen disabled fonksiyon listesinde olabilir. ona da dikkat etmek lazım.
  • 15-11-2010, 17:40:38
    #9
    Windows sunucuda çalıştırıyorsanız fopen('dosya', 'w+a') şeklinde kullanın.

    Ayrıca fwrite yazmaya gerek yok. CURLOPT_FILE o işi yapıyor zaten.

    Örnek:
    function downloadFile($link,$name=null)
    {
    	$link_info = pathinfo($link); //Yol bilgilerini degiskene atiyoruz.
    	$uzanti = strtolower($link_info['extension']); //Dosyanin uzantisini degiskene atiyoruz.
    	$file = ($name) ? $name : $link_info['basename']; 
    	//Eger kayit edilmek üzere dosya adi girilmisse, girilen dosya adini degiskene atiyouruz, girilmemisse orjinal adini degiskene atiyoruz.
    
    	$curl = curl_init();
    	$fopen = fopen($file,'w');
    
    	curl_setopt($curl, CURLOPT_URL, $link);
    	curl_setopt($curl, CURLOPT_HEADER,0);
    	curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
    	curl_setopt($curl, CURLOPT_TIMEOUT, 120);
    	curl_setopt($curl, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
    	curl_setopt($curl, CURLOPT_FILE, $fopen);
    	
    	curl_exec($curl);
    	curl_close($curl);
    	fclose($fopen);
    }