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'); }
/** * 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); }
/** * 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']); } } } } } }