Exemplo n.º 1
0
 public function testPropertiesArePreserved()
 {
     $properties = array('filename' => 'sample.pdf', 'mime' => 'application/pdf');
     $files = new FileModel(new QuestionModel(array('questionID' => 1)));
     $id = $files->storeFilename(TEST_PATH . '/fixtures/sample.pdf', $properties);
     $result = $files->fetchWithProperties($id);
     $this->assertEquals($result['filename'], 'sample.pdf');
     $this->assertEquals($result['mime'], 'application/pdf');
 }
Exemplo n.º 2
0
 /**
  * Streams the requested attachment file to the user
  */
 public function downloadAction()
 {
     $this->view->setRenderLayout(false);
     $params = $this->getRequest()->getParams();
     $fileModel = new FileModel(new QuestionModel(array('questionID' => $params['id'])));
     $file = $fileModel->fetchWithProperties($params['fileID']);
     $this->view->file = $file;
     $this->view->setRenderLayout(false);
 }
Exemplo n.º 3
0
 /**
  * Adds all attachments associated with the instance to the zip archive
  */
 public function addAttachments()
 {
     $attachmentQuestions = FileModel::fetchObjectIdsByInstance($this->instance->instanceID);
     $instance = new InstanceModel(array('instanceID' => $this->instance->instanceID, 'depth' => 'question'));
     while ($page = $instance->nextPage()) {
         while ($section = $page->nextSection()) {
             while ($question = $section->nextQuestion()) {
                 if (isset($attachmentQuestions['QuestionModel'][$question->questionID])) {
                     $fileObj = new FileModel($question);
                     $ids = $fileObj->fetchAll();
                     if ($ids === NULL) {
                         continue;
                     }
                     foreach ($ids as $id) {
                         $file = $fileObj->fetchWithProperties($id);
                         $this->addFromString("files/{$id}", $file['contents']);
                     }
                 }
             }
         }
     }
 }