Вход Регистрация
Файл: forsoc.ru/manul/classes/Quarantiner.inc.php
Строк: 69
<?php

ob_start
();
require_once(
'Archiver.inc.php');
require_once(
'FileInfo.inc.php');
ob_end_clean();

class 
Quarantiner
{

    function 
__construct($defaultFilename null)
    {
        global 
$projectTmpDir;
        
$this->quarantineList = array();

        if (!
$defaultFilename) {
            
$timeString date('Y_m_d_H_i'$_SERVER['REQUEST_TIME']);
            
$this->quarantineFilename $projectTmpDir '/quarantine.' $timeString '.zip';
        } else {
            
$this->quarantineFilename $defaultFilename;
        }

        
$this->web_root_dir $_SERVER['DOCUMENT_ROOT'];

        if (
file_exists($this->quarantineFilename)) {
            
unlink($this->quarantineFilename);
        }
    }

    function 
add($filename)
    {
        if (
file_exists($filename)) {
            
$this->quarantineList[] = $filename;
            return 
true;
        }

        return 
false;
    }

    function 
getArchive()
    {
        
$this->archiver = new Archiver($this->quarantineFilename'a');

        foreach (
$this->quarantineList as $filename) {
            
$fileinfo = new FileInfo($filename);
            
$fileHash $fileinfo->md5;
            
$this->archiver->addFile($filename$fileHash);
            
$metaFilename $fileHash '.meta';

            
$this->archiver->createFile($metaFilename, (string)$fileinfo);
        }

        
$this->archiver->close();

        return 
$this->quarantineFilename;
    }

}
Онлайн: 3
Реклама