Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

klasörü zip yaparken kök dizinden beri yolu almasını engelleme

Konu, 'PHP' kısmında Adem GENÇ tarafından paylaşıldı.

  1. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    872
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Merhaba,

    php ile bir klasörü zip yapıyorum burada sorun yok

    Sorun şu:
    public_html/websitedizin/dizin1/dizin2/dizin3/dizin4/ZIPOLACAKDIZIN

    Zip scriptim burada: public_html/zip_script/

    Zip olacak dizin adresini şöyle belirliyorum:
    define("DIZINYOLU", "../websitedizin/dizin1/dizin2/dizin3/dizin4/");

    Ben bu ZIPOLACAKDIZIN dizini zip yapıyorum ama zip dosyaya bakıyorum tam ../websitedizin/dizin1/dizin2/dizin3/dizin4/ZIPOLACAKDIZIN/ yol var

    Diyorum ki DIZINYOLU dan gelen yolu zip içine ekleme sadece benim POST ettiğim dizin ve sonraki tüm dosyaları ekle

    Zip yaptığım kod aşağıda. Yardımcı olabilirmisiniz
    PHP:
    $simdizaman date("Y-m-d-H-i-s",time());
    // Create ZIP file
    if(isset($_POST['name'])){

    $zip = new ZipArchive();
    $filename ZIPDIR.$simdizaman."_".$_POST['name'].".zip";

    if (
    $zip->open($filenameZipArchive::CREATE)!==TRUE) {
      exit(
    "cannot open <$filename>\n");
    }

    $dir DIZINDIR.$_POST['name']."/";

    // Create zip
    createZip($zip,$dir);

    $zip->close();
    }

    // Create zip
    function createZip($zip,$dir){
    if (
    is_dir($dir)){                                                                                                   

      if (
    $dh opendir($dir)){
       while ((
    $file readdir($dh)) !== false){
        
    // If file
        
    if (is_file($dir.$file)) {
         if(
    $file != '' && $file != '.' && $file != '..'){
          
    $zip->addFile($dir.$file);
         }
        }else{
         
    // If directory
         
    if(is_dir($dir.$file) ){

          if(
    $file != '' && $file != '.' && $file != '..'){

           
    // Add empty directory
           
    $zip->addEmptyDir($dir.$file);

           
    $folder $dir.$file.'/';
           
           
    // Read data of the folder
           
    createZip($zip,$folder);
          }
         }
        }
       }
       
    closedir($dh);
      }
    }
    }