• 20-11-2010, 16:47:13
    #1
    Üyeliği durduruldu
    Merhabalar,

    FTP ' de script diye bir klasör var diyelim. Webden bir forma bir dizin adı yazıyoruz, tamam'a bastıktan sonra o dizini oluşturuyor ve script klaösründeki dosyaları onun içine kopyalıyor.

    Bu tarz birşeyi nasıl yapabiliriz?
  • 20-11-2010, 18:46:56
    #2
    <?php
    if(isset($_POST['gonder'])){
    $klasor_adi = $_POST['klasor'];
     
    if(file_exists($klasor_adi))
    {
    echo "Klasör zaten var!";
    exit();//İşlemi durdur
    }
     
    $olustur = mkdir($klasor_adi, 0755);
     
    if($olustur)
    {
    echo "Klasör oluşturuldu.";
    
    $dizin_adi = "/alinacak_klasor/";
     
    $dizin = opendir($dizin_adi);
     
    while(gettype($ad=readdir($dizin))!=boolean)
    {
     
    $kaynak = $dizin_adi."/".$ad;
    $hedef = $klasor_adi."/".$ad;
    if (!copy($kaynak, $hedef)) {
    echo "failed to copy $file...\n";
    }else{
    echo $hedef." dosyası basariyla kopyalandi.<br>";
    }
     
    }
     
    closedir($dizin);
    
    
    
    }
    else
    {
    echo "Klasör oluşturulamadı!";
    }
    }else{
    ?>
    <form action="#" method="POST">
    dosya ismi:<input type="text" name="klasor"><br>
    <input type="submit" name="gonder">
    
    </form>
    <?php
    }
    ?>
    denemeden direk yazdım buraya.
    muhtemelen çalışır.
    çalışmazsa
    $olustur = mkdir($klasor_adi, 0777);
    yaparak tekrar dene.
    bu arada bu klasör oluşturma işleminin gerçekleştiği üst klasörün CHMOD 0777 olması lazım
  • 20-11-2010, 19:04:39
    #3
    Üyeliği durduruldu
    digiklan adlı üyeden alıntı: mesajı görüntüle
    <?php
    if(isset($_POST['gonder'])){
    $klasor_adi = $_POST['klasor'];
     
    if(file_exists($klasor_adi))
    {
    echo "Klasör zaten var!";
    exit();//İşlemi durdur
    }
     
    $olustur = mkdir($klasor_adi, 0755);
     
    if($olustur)
    {
    echo "Klasör oluşturuldu.";
    
    $dizin_adi = "/alinacak_klasor/";
     
    $dizin = opendir($dizin_adi);
     
    while(gettype($ad=readdir($dizin))!=boolean)
    {
     
    $kaynak = $dizin_adi."/".$ad;
    $hedef = $klasor_adi."/".$ad;
    if (!copy($kaynak, $hedef)) {
    echo "failed to copy $file...\n";
    }else{
    echo $hedef." dosyası basariyla kopyalandi.<br>";
    }
     
    }
     
    closedir($dizin);
    
    
    
    }
    else
    {
    echo "Klasör oluşturulamadı!";
    }
    }else{
    ?>
    <form action="#" method="POST">
    dosya ismi:<input type="text" name="klasor"><br>
    <input type="submit" name="gonder">
    
    </form>
    <?php
    }
    ?>
    denemeden direk yazdım buraya.
    muhtemelen çalışır.
    çalışmazsa
    $olustur = mkdir($klasor_adi, 0777);
    yaparak tekrar dene.
    bu arada bu klasör oluşturma işleminin gerçekleştiği üst klasörün CHMOD 0777 olması lazım
    Klasör oluşturuldu.
    Warning: opendir() [function.opendir]: SAFE MODE Restriction in effect. The script whose uid is 1870 is not allowed to access / owned by uid 0 in /home/linem/public_html/asda.php on line 19

    Warning: opendir(/gmp/) [function.opendir]: failed to open dir: No such file or directory in /home/linem/public_html/asda.php on line 19

    Warning: readdir(): supplied argument is not a valid Directory resource in /home/linem/public_html/asda.php on line 21

    Warning: closedir(): supplied argument is not a valid Directory resource in /home/linem/public_html/asda.php on line 34

    Klasörü oluşturuyor fakat böyle bir hata veriyor.
  • 20-11-2010, 19:09:43
    #4
    Safe Mod güvenlik ayarları yüzünden script içinde dosya işlemi yapmanız kısıtlanmış. makedir çalışıyor ama opendir readdir fonksiyonları kısıtlanmış.
    dosya sayısı fazla değilse opendir readdir kullanmadan
    her dosya için tek tek elle copy komutu yazarak deneyin.
    if (!copy("/kaynak_klasor/kaynak_dosya1.jpg", "/hedef_klasor/hedef_dosya1.jpg")) { 
    echo "kopyalama basarisiz"; 
    }else{ 
    echo "dosya basariyla kopyalandi.<br>"; 
    } 
    if (!copy("/kaynak_klasor/kaynak_dosya2.jpg", "/hedef_klasor/hedef_dosya2.jpg")) { 
    echo "kopyalama basarisiz"; 
    }else{ 
    echo "dosya basariyla kopyalandi.<br>"; 
    }
  • 20-11-2010, 19:48:53
    #5
    Üyeliği durduruldu
    digiklan adlı üyeden alıntı: mesajı görüntüle
    Safe Mod güvenlik ayarları yüzünden script içinde dosya işlemi yapmanız kısıtlanmış. makedir çalışıyor ama opendir readdir fonksiyonları kısıtlanmış.
    dosya sayısı fazla değilse opendir readdir kullanmadan
    her dosya için tek tek elle copy komutu yazarak deneyin.
    if (!copy("/kaynak_klasor/kaynak_dosya1.jpg", "/hedef_klasor/hedef_dosya1.jpg")) { 
    echo "kopyalama basarisiz"; 
    }else{ 
    echo "dosya basariyla kopyalandi.<br>"; 
    } 
    if (!copy("/kaynak_klasor/kaynak_dosya2.jpg", "/hedef_klasor/hedef_dosya2.jpg")) { 
    echo "kopyalama basarisiz"; 
    }else{ 
    echo "dosya basariyla kopyalandi.<br>"; 
    }
    Maalesef dosya çok var. Böyle yapamam. Başka bir yolu yokmu ? Sunucu benim değil fonksiyonlarıda açamam