Ejemplo n.º 1
0
 public function indexAction()
 {
     $docId = $this->getRequest()->getParam('docId', null);
     $container = null;
     $fileHandle = null;
     try {
         $container = new Oai_Model_Container($docId, $this->_logger);
         $fileHandle = $container->getFileHandle();
     } catch (Oai_Model_Exception $e) {
         $this->view->errorMessage = $e->getMessage();
         $this->getResponse()->setHttpResponseCode(500);
         return $this->render('error');
     }
     // prepare response
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender();
     $this->getResponse()->setHeader('Content-Type', $fileHandle->getMimeType(), true)->setHeader('Content-Disposition', 'attachment; filename=' . $container->getName() . $fileHandle->getExtension(), true);
     $this->_helper->SendFile->setLogger($this->_logger);
     try {
         $this->_helper->SendFile($fileHandle->getPath());
     } catch (Exception $e) {
         $this->_logger->err($e->getMessage());
         $this->getResponse()->clearAllHeaders();
         $this->getResponse()->clearBody();
         $this->getResponse()->setHttpResponseCode(500);
     }
     $fileHandle->delete();
 }
Ejemplo n.º 2
0
 private function tryAccessForDocument($docId, $accessAllowed)
 {
     $model = new Oai_Model_Container($docId);
     $tarball = null;
     $exceptionMessage = null;
     try {
         $tarball = $model->getFileHandle();
     } catch (Oai_Model_Exception $e) {
         $exceptionMessage = $e->getMessage();
     }
     if ($accessAllowed === true) {
         $this->assertEquals('requested document does not have any associated readable files', $exceptionMessage);
     } else {
         $this->assertEquals('access to requested document is forbidden', $exceptionMessage);
     }
 }