Вход Регистрация
Файл: mefos.ru/kolhoz/libzip.dat
Строк: 124
<?PHP class createZip { public $compressedData = array(); public
$centralDirectory = array(); // central directory public
$endOfCentralDirectory = "\x50\x4b\x05\x06\x00\x00\x00\x00";
//end of Central directory record public $oldOffset = 0; public
function addDirectory($directoryName) { $directoryName =
str_replace("\\", "/", $directoryName);
$feedArrayRow = "\x50\x4b\x03\x04"; $feedArrayRow .=
"\x0a\x00"; $feedArrayRow .=
"\x00\x00"; $feedArrayRow .=
"\x00\x00"; $feedArrayRow .=
"\x00\x00\x00\x00"; $feedArrayRow .=
pack("V",0); $feedArrayRow .=
pack("V",0); $feedArrayRow .=
pack("V",0); $feedArrayRow .= pack("v",
strlen($directoryName) ); $feedArrayRow .= pack("v", 0
); $feedArrayRow .= $directoryName; $feedArrayRow .=
pack("V",0); $feedArrayRow .= pack("V",0);
$feedArrayRow .= pack("V",0); $this -> compressedData[] =
$feedArrayRow; $newOffset = strlen(implode("",
$this->compressedData)); $addCentralRecord =
"\x50\x4b\x01\x02"; $addCentralRecord
.="\x00\x00"; $addCentralRecord
.="\x0a\x00"; $addCentralRecord
.="\x00\x00"; $addCentralRecord
.="\x00\x00"; $addCentralRecord
.="\x00\x00\x00\x00"; $addCentralRecord .=
pack("V",0); $addCentralRecord .=
pack("V",0); $addCentralRecord .=
pack("V",0); $addCentralRecord .= pack("v",
strlen($directoryName) ); $addCentralRecord .= pack("v", 0
); $addCentralRecord .= pack("v", 0 ); $addCentralRecord .=
pack("v", 0 ); $addCentralRecord .= pack("v", 0
); $ext = "\x00\x00\x10\x00"; $ext =
"\xff\xff\xff\xff"; $addCentralRecord .= pack("V", 16
); $addCentralRecord .= pack("V", $this -> oldOffset
); $this -> oldOffset = $newOffset; $addCentralRecord .=
$directoryName; $this -> centralDirectory[] =
$addCentralRecord; } public function addFile($data,
$directoryName) { $directoryName = str_replace("\\",
"/", $directoryName); $feedArrayRow =
"\x50\x4b\x03\x04"; $feedArrayRow .=
"\x14\x00"; $feedArrayRow .=
"\x00\x00"; $feedArrayRow .=
"\x08\x00"; $feedArrayRow .=
"\x00\x00\x00\x00"; $uncompressedLength =
strlen($data); $compression = crc32($data); $gzCompressedData =
gzcompress($data); $gzCompressedData = substr( substr($gzCompressedData,
0, strlen($gzCompressedData) - 4), 2); $compressedLength =
strlen($gzCompressedData); $feedArrayRow .=
pack("V",$compression); $feedArrayRow .=
pack("V",$compressedLength); $feedArrayRow .=
pack("V",$uncompressedLength); $feedArrayRow .=
pack("v", strlen($directoryName) ); $feedArrayRow .=
pack("v", 0 ); $feedArrayRow .= $directoryName; $feedArrayRow
.= $gzCompressedData; $feedArrayRow .=
pack("V",$compression); $feedArrayRow .=
pack("V",$compressedLength); $feedArrayRow .=
pack("V",$uncompressedLength); $this -> compressedData[] =
$feedArrayRow; $newOffset = strlen(implode("",
$this->compressedData)); $addCentralRecord =
"\x50\x4b\x01\x02"; $addCentralRecord
.="\x00\x00"; $addCentralRecord
.="\x14\x00"; $addCentralRecord
.="\x00\x00"; $addCentralRecord
.="\x08\x00"; $addCentralRecord
.="\x00\x00\x00\x00"; $addCentralRecord .=
pack("V",$compression); $addCentralRecord .=
pack("V",$compressedLength); $addCentralRecord .=
pack("V",$uncompressedLength); $addCentralRecord .=
pack("v", strlen($directoryName) ); $addCentralRecord .=
pack("v", 0 ); $addCentralRecord .= pack("v", 0
); $addCentralRecord .= pack("v", 0 ); $addCentralRecord .=
pack("v", 0 ); $addCentralRecord .= pack("V", 32
); $addCentralRecord .= pack("V", $this -> oldOffset
); $this -> oldOffset = $newOffset; $addCentralRecord .=
$directoryName; $this -> centralDirectory[] = $addCentralRecord;
} public function getZippedfile() { $data =
implode("", $this -> compressedData); $controlDirectory =
implode("", $this ->
centralDirectory); return $data. $controlDirectory. $this ->
endOfCentralDirectory. pack("v", sizeof($this ->
centralDirectory)). pack("v", sizeof($this ->
centralDirectory)). pack("V",
strlen($controlDirectory)). pack("V",
strlen($data)). "\x00\x00"; } public function
forceDownload($archiveName) { $headerInfo =
''; if(ini_get('zlib.output_compression')){ini_set('zlib.output_compression',
'Off');} // Security checks if($archiveName == ""){ echo
"<html><title>Public Photo Directory - Download
</title><body><BR><B>ERROR:</B> The download
file was NOT SPECIFIED.</body></html>"; exit; }elseif( !
file_exists( $archiveName ) ) { echo "<html><title>Public
Photo Directory - Download
</title><body><BR><B>ERROR:</B> File not
found.</body></html>"; exit; } header("Pragma:
public"); header("Expires:
0"); header("Cache-Control: must-revalidate, post-check=0,
pre-check=0"); header("Cache-Control:
private",false); header("Content-Type:
application/zip"); header("Content-Disposition: attachment;
filename=".basename($archiveName).";"
); header("Content-Transfer-Encoding:
binary"); header("Content-Length:
".filesize($archiveName)); readfile("$archiveName"); } } ?>
Онлайн: 2
Реклама