} $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; }