Ejemplo n.º 1
0
         }
         $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);
Ejemplo n.º 5
0
                        <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';
    ?>
 * 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']);
 * */
// 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']);
Ejemplo n.º 8
0
#tipo do imovel
$tipoimovel = $aImovel[0]['tipoimovel'];
#busca o tipo do imovel
$objTiposImoveis = new TiposImoveis();
$objTiposImoveis = $objTiposImoveis->getObject($tipoimovel);
$tipoimovel = $objTiposImoveis[0]['tipo'];
#demais dados da tabelas
$rua = $aImovel[0]['rua'];
$numero = $aImovel[0]['numero'];
$cidade = $aImovel[0]['cidade'];
$bairro = $aImovel[0]['bairro'];
$estado = $aImovel[0]['estado'];
$descricao = $aImovel[0]['descricao'];
$tipoanuncio = $aImovel[0]['tipoanuncio'] == "1" ? "Aluguel" : "Venda";
#inicializa instancia da classe de imagens
$objImagensImovel = new Imagens();
#monta filtro do parametro da url para buscar imovel para visulização
$sFiltro = "imovel = " . $parametro1;
#busca lista de imagens do imovel
$arrImagens = $objImagensImovel->getList($sFiltro);
$iTotalImagens = sizeof($arrImagens);
$arrImgCarrossel = "";
//carrega imagens do corrossel
for ($i = 0; $i < $iTotalImagens; $i++) {
    $arrImgCarrossel .= "<div><img u='image' class='img-thumbnail' src='../imagens/" . $arrImagens[$i]['imagem'] . "' /></div>";
}
#Busca 3 imóveis randomicamente
$arrImoveisRel = $oImoveis->getImoveisRelacionados($cidade, $parametro1);
$iTotalImoveisRel = sizeof($arrImoveisRel);
$lstImoveisRel = "";
//carrega lista dos imoveis randomicos
 */
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();
Ejemplo n.º 10
0
<?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);
Ejemplo n.º 14
0
 /**
  * @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;
 }
//Classes
require_once "../util/includes-json-class.php";
if (!empty($_POST['FRMcadastro'])) {
    //Cadastra Imoveis
    $oImoveis = new Imoveis();
    $oImoveis->_item['tipoimovel'] = $_POST['FRMtipoimovel'];
    $oImoveis->_item['tipoanuncio'] = $_POST['FRMtipoanuncio'];
    $oImoveis->_item['rua'] = $_POST['FRMrua'];
    $oImoveis->_item['numero'] = $_POST['FRMnumero'];
    $oImoveis->_item['cidade'] = $_POST['FRMcidade'];
    $oImoveis->_item['bairro'] = $_POST['FRMbairro'];
    $oImoveis->_item['estado'] = $_POST['FRMestado'];
    $oImoveis->_item['descricao'] = $_POST['FRMdescricao'];
    $iIdImovel = $oImoveis->createNewObject();
    //Cadastra Imagens
    $oImagens = new Imagens();
    $iTotalImg = count($_FILES['FRMimagem']['name']);
    for ($i = 0; $i < $iTotalImg; $i++) {
        //Upload de arquivos
        // verifica se foi enviado um arquivo
        if (isset($_FILES['FRMimagem']['name'][$i]) && $_FILES["FRMimagem"]["error"][$i] == 0) {
            $arquivo_tmp = $_FILES['FRMimagem']['tmp_name'][$i];
            $nome = $_FILES['FRMimagem']['name'][$i];
            // Pega a extensao
            $extensao = strrchr($nome, '.');
            // Converte a extensao para mimusculo
            $extensao = strtolower($extensao);
            // Somente imagens, .jpg;.jpeg;.gif;.png
            // Aqui eu enfilero as extesões permitidas e separo por ';'
            // Isso server apenas para eu poder pesquisar dentro desta String
            if (strstr('.jpg;.jpeg;.gif;.png', $extensao)) {
Ejemplo n.º 16
0
$aMenu = array(0 => array('title' => 'Imóveis', 'href' => '/community', 'child' => array(0 => array('title' => 'Cadastrar', 'href' => 'community', 'child' => array(0 => array('title' => 'Irc', 'href' => 'irc'), 1 => array('title' => 'Events', 'href' => 'events'))), 1 => array('title' => 'Buscar', 'href' => 'getting-involved', 'child' => array(0 => array('title' => 'Translation', 'href' => 'translation'), 1 => array('title' => 'Design', 'href' => 'contribute/themes'), 2 => array('title' => 'Coding', 'href' => 'contribute/development'))))), 1 => array('title' => 'Contatos', 'href' => 'support', 'child' => array(0 => array('title' => 'Search', 'href' => 'search/apachesolr_search'), 1 => array('title' => 'Forums', 'href' => 'Forum'), 2 => array('title' => 'Community Documentation', 'href' => 'documentation'))), 2 => array('title' => 'Tipos de Imóveis', 'href' => 'support', 'child' => array(0 => array('title' => 'Search', 'href' => 'search/apachesolr_search'), 1 => array('title' => 'Forums', 'href' => 'Forum'), 2 => array('title' => 'Community Documentation', 'href' => 'documentation'))));
if (!empty($_POST['FRMcadastro'])) {
    //Cadastra Imoveis
    $oImoveis = new Imoveis();
    $oImoveis->_item['tipoimovel'] = $_POST['FRMtipoimovel'];
    $oImoveis->_item['tipoanuncio'] = $_POST['FRMtipoanuncio'];
    $oImoveis->_item['rua'] = $_POST['FRMrua'];
    $oImoveis->_item['numero'] = $_POST['FRMnumero'];
    $oImoveis->_item['cidade'] = $_POST['FRMcidade'];
    $oImoveis->_item['bairro'] = $_POST['FRMbairro'];
    $oImoveis->_item['estado'] = $_POST['FRMestado'];
    $oImoveis->_item['descricao'] = $_POST['FRMdescricao'];
    $oImoveis->createNewObject(true);
    $iIdImovel = 1;
    //Cadastra Imagens
    $oImagens = new Imagens();
    $iTotalImg = count($_FILES['FRMimagem']['name']);
    for ($i = 0; $i < $iTotalImg; $i++) {
        //Upload de arquivos
        // verifica se foi enviado um arquivo
        if (isset($_FILES['FRMimagem']['name'][$i]) && $_FILES["FRMimagem"]["error"][$i] == 0) {
            $arquivo_tmp = $_FILES['FRMimagem']['tmp_name'][$i];
            $nome = $_FILES['FRMimagem']['name'][$i];
            // Pega a extensao
            $extensao = strrchr($nome, '.');
            // Converte a extensao para mimusculo
            $extensao = strtolower($extensao);
            // Somente imagens, .jpg;.jpeg;.gif;.png
            // Aqui eu enfilero as extesões permitidas e separo por ';'
            // Isso server apenas para eu poder pesquisar dentro desta String
            if (strstr('.jpg;.jpeg;.gif;.png', $extensao)) {
Ejemplo n.º 17
0
                         }
                     }
                     // se não tem imagem anterior então estamos mudando a imagem atual para a primeira posição
                     if (empty($_REQUEST['newPosPrev'])) {
                         $newPos = $_REQUEST['newPosNext'];
                         $fieldValue = 'ORDEM + 1';
                         $extraConditional = " AND ORDEM < {$_REQUEST['oldPos']} ";
                     }
                     // se não tem próxima imagem então estamos mudando a imagem atual para a derradeira posição
                     if (empty($_REQUEST['newPosNext'])) {
                         $newPos = $_REQUEST['newPosPrev'];
                         $fieldValue = 'ORDEM - 1';
                         $extraConditional = " AND ORDEM > {$_REQUEST['oldPos']} ";
                     }
                     Imagens::updateImagensFieldByDigital('ORDEM', $fieldValue, $_REQUEST['digital'], $extraConditional);
                     Imagens::updateImagensFieldByDigital('ORDEM', $newPos, $_REQUEST['digital'], " AND ORDEM = {$temporaryOrdemValue} ");
                     $out = array('success' => 'true');
                 } catch (Exception $e) {
                     $out = array('success' => 'false', 'error' => Util::fixErrorString($e->getMessage()));
                 }
             } else {
                 $out = array('success' => 'false', 'error' => Util::fixErrorString('Informações importantes estão ausentes!'));
             }
         } else {
             $out = array('success' => 'false', 'error' => Util::fixErrorString('Acesso negado!'));
         }
         break;
     default:
         $out = array('success' => 'false', 'error' => 'Opcao Invalida!');
         break;
 }
 * 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;
        }