public function abrirDocumentosAnexadosAction() { $this->_helper->layout->disableLayout(); // Desabilita o Zend Layout $idPronac = $this->_request->getParam("idPronac"); if (strlen($idPronac) > 7) { $idPronac = Seguranca::dencrypt($idPronac); } $id = $this->_request->getParam('id'); $tipo = $this->_request->getParam('tipo'); $tipoDoc = null; $bln = "false"; $tipoDoc = 0; if ($tipo == '1') { $tipoDoc = "tbDocumentosAgentes"; //SAC.dbo.tbDocumentosAgentes } else { if ($tipo == '2') { $tipoDoc = "tbDocumentosPreProjeto"; //SAC.dbo.tbDocumentosPreProjeto } else { if ($tipo == '3') { $tipoDoc = "tbDocumento"; //SAC.dbo.tbDocumento } } } // Configuração o php.ini para 10MB @ini_set("mssql.textsize", 10485760); @ini_set("mssql.textlimit", 10485760); @ini_set("upload_max_filesize", "10M"); if ($tipo == 1 || $tipo == 2 || $tipo == 3) { // busca o arquivo $resultado = UploadDAO::abrirdocumentosanexados($id, $tipoDoc); if (count($resultado) > 0) { if ($tipo == 1) { $this->_forward("abrirdocumentosanexadosbinario", "upload", "", array('id' => $id, 'busca' => $tipoDoc)); } else { $this->_forward("abrirdocumentosanexados", "upload", "", array('id' => $id, 'busca' => $tipoDoc)); } $bln = "true"; } } else { // busca o arquivo $resultado = UploadDAO::abrir($id); if (count($resultado) > 0) { $this->_forward("abrir", "upload", "", array('id' => $id)); $bln = "true"; } } if ($bln == "false") { $url = Zend_Controller_Front::getInstance()->getBaseUrl() . "/consultardadosprojeto/?idPronac={$idPronac}"; $this->_helper->viewRenderer->setNoRender(true); $this->_helper->flashMessenger->addMessage("Não foi possível abrir o arquivo especificado. Tente anexá-lo novamente."); $this->_helper->flashMessengerType->addMessage("ERROR"); JS::redirecionarURL($url); exit; } }
/** * Método para abrir um arquivo binário * @access public * @param void * @return void */ public function abrirAction() { // recebe o id do arquivo via get $get = Zend_Registry::get('get'); $id = (int) isset($get->id) ? $get->id : $this->_request->getParam('id'); // Configuração o php.ini para 10MB @ini_set("mssql.textsize", 10485760); @ini_set("mssql.textlimit", 10485760); @ini_set("upload_max_filesize", "10M"); $response = new Zend_Controller_Response_Http(); // busca o arquivo $resultado = UploadDAO::abrir($id); // erro ao abrir o arquivo if (!$resultado) { $this->_helper->layout->disableLayout(); // Desabilita o Zend Layout $this->_helper->viewRenderer->setNoRender(); // Desabilita o Zend Render die("Não existe o arquivo especificado"); $this->view->message = 'Não foi possível abrir o arquivo!'; $this->view->message_type = 'ERROR'; } else { // lê os cabeçalhos formatado foreach ($resultado as $r) { $this->_helper->layout->disableLayout(); // Desabilita o Zend Layout $this->_helper->viewRenderer->setNoRender(); // Desabilita o Zend Render Zend_Layout::getMvcInstance()->disableLayout(); // Desabilita o Zend MVC $this->_response->clearBody(); // Limpa o corpo html $this->_response->clearHeaders(); // Limpa os headers do Zend $this->getResponse()->setHeader('Content-Type', $r->dsTipoPadronizado)->setHeader('Content-Disposition', 'attachment; filename="' . $r->nmArquivo . '"')->setBody($r->biArquivo); } // fecha foreach } // fecha else }