コード例 #1
0
 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;
     }
 }
コード例 #2
0
 /**
  * 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
 }