}
         $zip->close();
     }
     header('Content-Type: application/zip');
     header('Content-Disposition: attachment; filename="arquivos_' . $digital . '.zip"');
     header('Content-Length: ' . filesize($zipAbsFilename));
     readfile($zipAbsFilename);
     unlink($zipAbsFilename);
     exit;
     break;
 case 'delete':
     LogErrorReader::factory()->delete()->getLog('Log deletado com sucesso!');
     exit;
     break;
 case 'garbageCollectionImagesByDigital':
     Imagens::factory()->garbageCollection($_REQUEST['digital'])->clearCache($_REQUEST['digital']);
     exit;
     break;
 case 'tester':
     LogErrorReader::factory()->tester();
     exit;
     break;
 case 'clearAll':
     LogErrorReader::factory()->clearAllCache()->getLog('Cache removido com sucesso!');
     exit;
     break;
 case 'logoffAll':
     //Remove Cache das sessões
     $pattern = __BASE_PATH__ . "/cache/sessions/sess_*";
     $arrSessionFiles = glob($pattern);
     foreach ($arrSessionFiles as $key => $absoluteFileName) {
<?php

/*
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
print json_encode(array('percent' => Imagens::factory()->percentCacheProcess($_REQUEST['numero_processo'])));
<?php

/*
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
Imagens::factory()->generateCacheForProcess($_REQUEST['numero_processo'])->generateLinksForProcess($_REQUEST['numero_processo'])->toJson(true);
<?php

/*
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
include "bibliotecas/fpdf/fpdf.php";
include "bibliotecas/pdfbookmark/PDF_Bookmark.php";
$allow = AclFactory::checaPermissao(Controlador::getInstance()->acl, Controlador::getInstance()->usuario, DaoRecurso::getRecursoById(999));
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=PDF-DOC-{$_REQUEST['digital']}.pdf");
$hashs = explode(',', $_REQUEST['hash']);
$md5 = array();
foreach ($hashs as $hash) {
    $hash = explode('|', $hash);
    $md5[] = $hash[0];
}
Imagens::factory()->generatePDFForDigitalByMD5($_REQUEST['digital'], false, 'png', $md5, $allow);
                        <button class="button-alter-status-image" value="2">Excluir</button>
                    <?php 
}
?>
                    <hr>
                    <br>
                    <div id="thumbs" class="navigation">
                        <a class="pageLink prev" style="visibility: hidden;" href="#" title="Página Anterior"></a>

                        <ul class="thumbs noscript">

                            <?php 
foreach ($images as $key => $image) {
    ?>
                                <?php 
    $lote = Imagens::factory()->generateLote($image['DIGITAL']);
    $url = sprintf("%scache/%s/%s/", __CAM_IMAGENS__, $lote, $image['DIGITAL']);
    //url para geração de imagem
    $url2 = sprintf("%s/modelos/imagens/getPNG.php?digital=%s&page=", __URLSERVERAPP__, $image['DIGITAL']);
    ?>
                                <li>
                                    <a class="thumb" title="<?php 
    print $image['DIGITAL'];
    ?>
" href="<?php 
    print $image['FLG_PUBLICO'] == 1 || $allow ? "{$url2}{$image['MD5']}" : '/imagens/documento_confidencial_view.png';
    ?>
">
                                        <span  class="page-num <?php 
    print $image['FLG_PUBLICO'] == 1 ? 'blue' : 'red';
    ?>
 */
define('CF_APP_BASE_PATH', realpath(__DIR__ . '/..'));
define('CF_APP_ENVIRONMENT', getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'prd');
/**
 * Configurations
 */
include CF_APP_BASE_PATH . '/classes/CFUtils.php';
include CF_APP_BASE_PATH . '/classes/CFConfig.php';
include CF_APP_BASE_PATH . '/classes/Config.php';
/**
 * HandleFatalError
 */
register_shutdown_function('HandleFatalError');
/**
 * HandleFatalError
 */
function HandleFatalError()
{
    $error = error_get_last();
    if (!is_null($error) && ($error['type'] == E_ERROR || $error['type'] == E_CORE_ERROR || $error['type'] == E_COMPILE_ERROR || $error['type'] == E_RECOVERABLE_ERROR)) {
        include 'classes/Error.php';
        include 'classes/Email.php';
        Error::factory()->handleFatalError()->sendEmailFatalError();
    }
}
/**
 * Config
 */
Config::factory()->buildDBConfig()->buildAppConstants()->buildAppDefines()->buildEnvironment();
Imagens::factory()->clearAllCache();
 * */
// this script can run forever
set_time_limit(0);
// tell the client the request has finished processing
//header('Location: index.php');  // redirect (optional)
header('Status: 200');
// status code
header('Connection: close');
// disconnect
// clear ob stack
@ob_end_clean();
// continue processing once client disconnects
ignore_user_abort(false);
ob_start();
/* ------------------------------------------ */
/* this is where regular request code goes.. */
/* end where regular request code runs..     */
/* ------------------------------------------ */
$iSize = ob_get_length();
header("Content-Length: {$iSize}");
// if the session needs to be closed, persist it
// before closing the connection to avoid race
// conditions in the case of a redirect above
session_write_close();
// send the response payload to the client
@ob_end_flush();
flush();
/* ------------------------------------------ */
/* code here runs after the client diconnect */
Imagens::factory()->isExistsDirCache()->generateCacheForDigital($_REQUEST['digital'], false, $_REQUEST['between']);
<?php

use Documento\Imagem, Documento\Imagem\IDocumentoImagem;
if (isset($_REQUEST['digital']) && strlen($_REQUEST['digital']) > 0) {
    $documentoImagemAgg = Imagem\DocumentoImagemFactory::factory($_REQUEST['digital']);
    $documentoImagemAgg->getPDF()->show();
}
//Se for um processo, precisamos realizar um merge dos PDFs
//@todo refazer em classe apropriada
if (isset($_REQUEST['numero_processo']) && strlen($_REQUEST['numero_processo']) > 0) {
    $images = Imagens::factory()->recoverInformationDBByProcess($_REQUEST['numero_processo']);
    $cfg = Config::factory();
    $pdfMergedAbsoluteFilename = $cfg->getParam('config.basepath') . '/cache/TEMP_PDF_PROCESSO_' . md5($_REQUEST['numero_processo'] . microtime());
    $arrPDFs = array();
    $documentoImagem = null;
    $i = 0;
    $digital = '';
    foreach ($images as $image) {
        if ($digital != $image['DIGITAL']) {
            $digital = $image['DIGITAL'];
            $documentoImagem = Imagem\DocumentoImagemFactory::factory($digital);
            $pdfDocAbsoluteFilename = sprintf("{$pdfMergedAbsoluteFilename}_%04d.pdf", ++$i);
            $arrPDFs[] = $pdfDocAbsoluteFilename;
            //Salva em arquivos PDFs temporários
            file_put_contents($pdfDocAbsoluteFilename, $documentoImagem->getPDF()->getData());
        }
    }
    $cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile={$pdfMergedAbsoluteFilename}.pdf ";
    foreach ($arrPDFs as $pdfFilename) {
        $cmd .= $pdfFilename . " ";
    }
<?php

/*
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
include "bibliotecas/fpdf/fpdf.php";
include "bibliotecas/pdfbookmark/PDF_Bookmark.php";
$allow = AclFactory::checaPermissao(Controlador::getInstance()->acl, Controlador::getInstance()->usuario, DaoRecurso::getRecursoById(999));
header('Content-type:application/pdf');
header('Content-Disposition:attachment;filename=PDF-PROC-' . preg_replace("/[^0-9]+/", "-", $_REQUEST['numero_processo']) . '.pdf');
$hashs = explode(',', $_REQUEST['hash']);
$md5 = array();
foreach ($hashs as $hash) {
    $hash = explode('|', $hash);
    $md5["{$hash[1]}"][] = $hash[0];
}
Imagens::factory()->generatePDFForProcessByDigitalsAndMD5($md5, $allow);
<?php

/*
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
Imagens::factory()->generateLinksForDigital($_REQUEST['digital'], $_REQUEST['between'])->toJson(true);
<?php

/*
 * Copyright 2008 ICMBio
 * Este arquivo é parte do programa SISICMBio
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
Imagens::factory()->generateCacheForDigital($_REQUEST['digital'])->generateLinksForDigital($_REQUEST['digital'])->toJson(true);
 /**
  * @return Imagens
  */
 public function clearAllCache()
 {
     $handleLotes = opendir(__CAM_UPLOAD__);
     //Interacao nos lotes...
     if ($handleLotes) {
         while (false !== ($lote = readdir($handleLotes))) {
             if ($lote != '.' && $lote != '..') {
                 $dirLote = __CAM_UPLOAD__ . '/cache/' . $lote;
                 if (!is_dir($dirLote)) {
                     continue;
                 }
                 //Interacao nos digitais...
                 $handleDigitais = opendir($dirLote);
                 if ($handleDigitais) {
                     while (false !== ($digital = readdir($handleDigitais))) {
                         if ($digital != '.' && $digital != '..') {
                             $last = __CAM_UPLOAD__ . "/cache/{$lote}/{$digital}/last-1";
                             if (!is_file($last)) {
                                 continue;
                             }
                             // Se idade do arquivo em dias for maior que o definido no arquivo de configuracao entao limpa o cache...
                             if (round((time() - filemtime($last)) / 86400) >= __CACHEIMAGENSDIAS__) {
                                 Imagens::factory()->clearCache($digital);
                             }
                         }
                     }
                     closedir($handleDigitais);
                 }
             }
         }
         closedir($handleLotes);
     }
     return $this;
 }
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
// this script can run forever
set_time_limit(300);
// tell the client the request has finished processing
//header('Location: index.php');  // redirect (optional)
header('Status: 200');
// status code
header('Connection: close');
// disconnect
// clear ob stack
@ob_end_clean();
// continue processing once client disconnects
ignore_user_abort(false);
ob_start();
/* ------------------------------------------ */
/* this is where regular request code goes.. */
/* end where regular request code runs..     */
/* ------------------------------------------ */
$iSize = ob_get_length();
header("Content-Length: {$iSize}");
// if the session needs to be closed, persist it
// before closing the connection to avoid race
// conditions in the case of a redirect above
session_write_close();
// send the response payload to the client
@ob_end_flush();
flush();
Imagens::factory()->isExistsDirCache()->generateCacheForProcess($_REQUEST['numero_processo']);
 * O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos
 * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão
 * 2 da Licença.
 *
 * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem
 * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU/GPL em português para maiores detalhes.
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt",
 * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço
 * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF)
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 * */
/**
 * Caso exista o travamento na geração de imagens de cache, o método de geração de cache será chamado novamente.
 */
$imagens = Imagens::factory();
$digital = $_REQUEST['digital'];
$lastFile = sprintf('%s/cache/%s/%s/last-1', __CAM_UPLOAD__, $imagens->generateLote($digital), $digital);
if ($imagens->isLocked($digital)) {
    if (file_exists($lastFile)) {
        $tempoEntreGeracaoDeArquivos = time() - filemtime($lastFile);
        // hora atual em segundos menos a hora de geração do arquivo.
        if ($tempoEntreGeracaoDeArquivos > 10) {
            $imagens->unlock($digital);
            print json_encode(array('percent' => 'error'));
            // apenas atualiza a data de alteração do arquivo para que ele não
            // seja chamado imediatamente depois quando este arquivo for chamado
            // novamente.
            touch($lastFile);
            exit;
        }