»Forumlar »D?k?manlar »PHP: ZipArchive:Zip dosya upload işlemleri
  https://seditio.com.tr/eski1/forums.php?m=posts&q=2063
          Geri Dön      -      Sayfayı Yazdırmak için tıklayın
Author: Kaan, Posted: 2012-10-15 21:39 GMT.
Baz? projelerde ihtiyac?n?z olabilecek bir konu, PHP ile ZipArchive S?n?f?n? kullan?m?. Bu s?n?f 5.2.0 ve ?zeri s?r?mlerde aktif kullan?labilmektedir.

PHP ZipArchive s?n?f?n?n t?m ?zelliklerini burada inceleyebilirsiniz.

Zip dosyas?n? upload ettikten sonra, i?leyebilmek i?in ZipArchive s?n?f?nda ExtractTo fonksiyonunu kullanmam?z gerekiyor.

ZipArchive i?in ?rnek kullan?m modeli ?u ?ekilde;
:
hp]<?php

$zip = new ZipArchive;

if ($zip->open('test.zip') === TRUE) {

    $zip->extractTo('/my/destination/dir/');

    $zip->close();

    echo 'ok';

} else {

    echo 'failed';

}

?>

Bu i?lemleri daha net g?rebilmeniz i?in, k???k bir zip upload formu ve zip dosyas?ndaki dosyalar?n istenilen klas?re ta??nd??? basit bir uygulama kodlar?n? ekliyorum;

index.php
:
tml]<form method="post" action="post.php" enctype="multipart/form-data">

        <p>

            <label>Resim: </label><br />

              <input type="file" name="resim" />  (yanl?zca .zip resim y?kleyebilirsiniz)

          </p><br />

         

          <p>

            <input type="submit" name="ekle" value="EKLE" />

          </p>

      </form>

index.php dosyas?ndaki form arac?l???yla y?klenen dosyay? post.php?e aktar?yoruz. file uplod ve file manipulation i?lemlerini post.php?de ger?ekle?tiriyoruz.

post.php
:
hp]<?php

if(isset($_FILES['resim'])){

        if($uploaded_type=='application/x-zip' || $uploaded_type =='application/zip' || $uploaded_type=='application/x-zip-compressed' || $uploaded_type=='application/octet-stream'){

                 /** yuklenen dosyaninn zip olduguna emin olduktan sonra kod blogu calisir */

         $ext=end(explode(".",basename($_FILES['resim']['name'])));  // dosyanin uzantisi aliniyor

         $yeni="yeni_".time().".".$ext;

         $ziptar= "../images/zip/".$yeni;  // zip dosyas?n?n istedigimiz yere, yeni isimle upload ediyoruz

       

                 if(move_uploaded_file($_FILES['resim']['tmp_name'], $ziptar)){

           

                 





                    $path="../images/zip/"; // klasor yolu

            $file=$path.stripslashes($_GET['zip']); // dosyanin tam pathi

       

             $zip = new ZipArchive;  // ZipArchive s?n?f? tanimlaniyor.



             $res = $zip->open($path.$_GET['zip']);

             if ($res === TRUE) {

                     $zip->extractTo($path."tr/");   // zip dosyasi icerigi "images/zip/tr/" dizinine cikariliyor.

                 $zip->close();

              } else {

               echo 'Bilinmeyen hata';

             }

       

           



                  /** zip dosyasinin icinden cikan dosya icerigini listeleyim  */

                   

             

                   echo "<ul>";

                   $direc=scandir($path."tr/");   // scandir fonksiyonu

                   foreach($direc as $res){

            echo "<li>".$res."</li>";

               }

                   

                   echo "</ul>";



        }

           

       }else{

                echo "Y?kledi?iniz dosya zip format?nda de?il. L?tfen .zip uzant?l? dosya upload ediniz.";

       }

}

?>

Powered by SeditioPrint version