Dosyaları Birleştirme ve Parçalama

PHP
55 lines
<?php
class DosyaIslemcisi {
private $anaDosya;
private $icerikler;
public $dosya;
public $yol;
public $dosyalar;
public $parcaboyutu;
public function parcala() {
if(!file_exists($this->yol)) {
mkdir($this->yol,0777);
}
$this->anaDosya = $this->yol . $this->dosya;
echo $this->dosya." Dosyasi ";
$birlesikDosya = fopen($this->anaDosya,'rb');
if($birlesikDosya === false) {
return 'Dosya Acilamiyor';
}
$i=0;
while(!feof($birlesikDosya)) {
$this->icerikler = fread($birlesikDosya,$this->parcaboyutu);
$yeni = substr($this->dosya,0,strlen($this->dosya) - 4) . sprintf('%03d',$i++) . substr($this->dosya, -4);
$yenidosya = $this->yol .$yeni ;
$parcadosya = fopen($yenidosya,'wb');
echo $yeni." ";
fwrite($parcadosya, $this->icerikler);
fclose($parcadosya);
}
echo "Olarak Parcalandi";
}
public function birlestir() {
if(file_exists($this->yol . $this->dosya)) {
unlink($this->yol . $this->dosya);
}
$dirHandle = dir($this->yol);
$yenidosya = fopen($this->yol . $this->dosya, 'ab');
for($i = 0; $i < count($this->dosyalar); $i++) {
$this->icerikler = file_get_contents($this->yol . $this->dosyalar[$i]);
fwrite($yenidosya, $this->icerikler);
}
fclose($yenidosya);
echo $this->dosya." Dosyasina ";
foreach($this->dosyalar as $f){echo $f." ";}
echo "Dosyalari Eklendi<br>";
}
}
$f=new DosyaIslemcisi();
$f->dosyalar = ['turk.jpg','kibris.jpg','azer.jpg'];
$f->dosya = "cikti.jpg";
$f->yol = dirname(__FILE__)."/";
$f->parcaboyutu = 2000;//byte
$f->birlestir();
$f->parcala();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Eklenen Dosyalar

turk.jpg 1,61 KB kibris.jpg 4,75 KB azer.jpg 1,63 KB

Çıktısı

cikti.jpg 8,00 KB

Parçalamadan Sonraki Çıktılar

cikti000.jpg 1,95 KB

cikti001.jpg 1,95 KB

cikti002.jpg 1,95 KB

cikti003.jpg 1,95 KB

cikti004.jpg 0,20 KB

Sizin Değerli Görüşlerinize İhtiyacımız Var.