Kaan - 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;
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
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
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';
}
?>
$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>
<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.";
}
}
?>
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.";
}
}
?>