Esempio n. 1
0
 /**
  * Método abrirarquivo()
  * Abrir arquivo em binário
  * @access public
  * @param void
  * @return void
  */
 public function abrirarquivoAction()
 {
     $this->autenticacao();
     $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();
     $tbArquivo = new tbArquivo();
     // busca o arquivo
     $resultado = $tbArquivo->buscarArquivo($id);
     // erro ao abrir o arquivo
     if (!$resultado) {
         $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', 'application/pdf')->setHeader('Content-Disposition', 'attachment; filename="' . $r->nmArquivo . '"')->setHeader("Connection", "close")->setHeader("Content-transfer-encoding", "binary")->setHeader("Cache-control", "private");
             $this->getResponse()->setBody($r->biArquivo);
         }
     }
 }