Php İle Zip Download

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cankol
    cankol's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    Sabah beridir deniyorum bir türlü netice alamadım,

    Veritabanında yapılan sorgu sonucunda dosyaların dizinleri ve dosya isimleri çıktısını kullanarak,

    Bu ayrı ayrı dizinlerdeki her dosyası tek bir zipte toplayıp download etmek amacım.

    Örneğin;

    klasor1/dosya1.jpg

    klasor2/dosya2.jpg

    ...

    gibi SQL çıktısına göre Zipleyip download ettirmek.

    Ancak bir türlü sonuca ulaşamadım. Fikri olan, yol gösterebilecek olan arkadaşlara şimdiden teşekkürler.

     


    imza.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    orheyn
    orheyn's avatar
    Kayıt Tarihi: 08/Ocak/2016
    Erkek

    Cpanel'den Dosya Dizinini kullanarak indirmeyi denediniz mi?

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cankol
    cankol's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    yok hocam amacım o değil.

    örneğin ödemeler kelimesini post ettirip SQL sorgusu sonucunda ödemeler adı altında tüm dökümanlara erişebiliyorum ve bunları tek link halinde download'da edebiliyorum.

    ancak benim amacım tek tek indirmek yerine ödemeler kelimesi geçen bütün dosyaları tek seferde indirebilmek. dosyalar ayrı ayrı dizinlerde olduğu için download'da takıldım.


    imza.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lazz
    lazz's avatar
    Kayıt Tarihi: 15/Ekim/2007
    Erkek
    <?php
        $files = array('Dear GP.docx','ecommerce.doc');
    
        # create new zip opbject
        $zip = new ZipArchive();
    
        # create a temp file & open it
        $tmp_file = tempnam('.','');
        $zip->open($tmp_file, ZipArchive::CREATE);
    
        # loop through each file
        foreach($files as $file){
    
            # download file
            $download_file = file_get_contents($file);
    
            #add it to the zip
            $zip->addFromString(basename($file),$download_file);
    
        }
    
        # close zip
        $zip->close();
    
        # send the file to the browser as a download
        header('Content-disposition: attachment; filename=Resumes.zip');
        header('Content-type: application/zip');
        readfile($tmp_file);
     ?>

    bu kodu denedınmı hocam basıt bır seye benzıyor

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cankol
    cankol's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    evet hocam denedim, tekli olarak dosyaları alabiliyorum. ancak sql çıktısındaki dizin ve dosya isimlerini kullanarak yapmayı beceremedim bir türlü. nette araştırdım bu türle ilgili bir örnek ya da kaynak bulamadım.


    imza.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    aercys
    aercys's avatar
    Kayıt Tarihi: 12/Nisan/2008
    Erkek

    Hocam sunucunda php exec komutu çalıştırmaya izin varsa şu şekilde deneyebilirsin;
    exec("zip $arsivismi $dosya1 $dosya2 ... $dosyaN"); 
    Not: Sunucuda zip yüklü değilse yüklemen gerekir.


    0x62 0x75 0x6e 0x75 0x20 0x79 0x61 0x7a 0x61 0x6e 0x20 0x74 0x6f 0x73 0x75 0x6e 0x2c 0x20 0x6f 0x6b 0x75 0x79 0x61 0x6e 0x61 0x20 0x6b 0x6f 0x73 0x75 0x6e
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    snnyk
    snnyk's avatar
    Kayıt Tarihi: 28/Mayıs/2007
    Erkek

    hocam tek ziple indirmek istiyorsan 

    önce sql den aldığın dosya yollarını bi döngü ile tek bir klasöre kopyalaman lazım sonra zip leyip down ettirmen daha mantıklı 

     


    snnyk.com - code is poetry all that i know...
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    @lazz adlı arkadaşın verdiği kod çalışmalı. Algoritmada basit;

    Dizinleri dizide topla

    Zip oluştur

    Her bir dizinin varlığını kontrol et, string olarak oku ve addFromString ile ekle

    Zipi kapat

    İndirmeye yolla.


    Sadece bi imza..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cankol
    cankol's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    Sorunu çözdüm , foreach'ten kurtulunca halloldu. İhtiyac duyanlara lazım olabilir paylasiyorum ornek halini. Yardımcı olan arkadaşlara teşekkürler.

    <?
    include("baglan.php");
    if ($_GET){
    	
    	# create new zip opbject
        $zip = new ZipArchive();
     
        # create a temp file & open it
        $tmp_file = tempnam('./tmp','');
        $zip->open($tmp_file, ZipArchive::CREATE);
    
    $search=$_GET["id"];
    $result = mysql_query("SELECT dosya,yol FROM dosyalar WHERE dosya LIKE '$search'");
    $bulunan=0;
    if (empty($search)){
    		echo 'Arama alanını boş bıraktın';
    	}else{
    		if (mysql_num_rows($result)>0){
    while($r=mysql_fetch_array($result))
    {
    $bulunan++;
    $dosya=$r["dosya"];
    $yol=$r["yol"];
    $filename=$yol.$dosya;
    
    	# download file
            $download_file = file_get_contents($filename);
     
            #add it to the zip
            $zip->addFromString(basename($filename),$download_file);
      }
    }
    }
    
    }
        # close zip
        $zip->close();
     
        # send the file to the browser as a download
    	header('Content-disposition: attachment; filename='.$dosya.'.zip');
    	header('Content-type: application/zip');
        readfile($tmp_file);
    	
    
    	
    	
    ?>

     

     

     

    cankol tarafından 01/Nis/16 18:15 tarihinde düzenlenmiştir

    imza.
Toplam Hit: 1204 Toplam Mesaj: 9
php zip download