Пример #1
0
 /**
  * {@inheritDoc}
  */
 public function ingest(Media $media, Request $request, ErrorStore $errorStore)
 {
     $data = $request->getContent();
     $fileData = $request->getFileData();
     if (!isset($fileData['file'])) {
         $errorStore->addError('error', 'No files were uploaded');
         return;
     }
     if (!isset($data['file_index'])) {
         $errorStore->addError('error', 'No file index was specified');
         return;
     }
     $index = $data['file_index'];
     if (!isset($fileData['file'][$index])) {
         $errorStore->addError('error', 'No file uploaded for the specified index');
         return;
     }
     $fileManager = $this->getServiceLocator()->get('Omeka\\File\\Manager');
     $file = $this->getServiceLocator()->get('Omeka\\File');
     $fileInput = new FileInput('file');
     $fileInput->getFilterChain()->attach(new RenameUpload(['target' => $file->getTempPath(), 'overwrite' => true]));
     $fileData = $fileData['file'][$index];
     $fileInput->setValue($fileData);
     if (!$fileInput->isValid()) {
         foreach ($fileInput->getMessages() as $message) {
             $errorStore->addError('upload', $message);
         }
         return;
     }
     // Actually process and move the upload
     $fileInput->getValue();
     $file->setSourceName($fileData['name']);
     $hasThumbnails = $fileManager->storeThumbnails($file);
     $fileManager->storeOriginal($file);
     $media->setFilename($file->getStorageName());
     $media->setMediaType($file->getMediaType());
     $media->setHasThumbnails($hasThumbnails);
     $media->setHasOriginal(true);
     if (!array_key_exists('o:source', $data)) {
         $media->setSource($fileData['name']);
     }
 }
Пример #2
0
 public function testMerge()
 {
     $value = array('tmp_name' => 'bar');
     $input = new FileInput('foo');
     $input->setAutoPrependUploadValidator(false);
     $input->setValue($value);
     $filter = new Filter\StringTrim();
     $input->getFilterChain()->attach($filter);
     $validator = new Validator\Digits();
     $input->getValidatorChain()->attach($validator);
     $input2 = new FileInput('bar');
     $input2->merge($input);
     $validatorChain = $input->getValidatorChain();
     $filterChain = $input->getFilterChain();
     $this->assertFalse($input2->getAutoPrependUploadValidator());
     $this->assertEquals($value, $input2->getRawValue());
     $this->assertEquals(1, $validatorChain->count());
     $this->assertEquals(1, $filterChain->count());
     $validators = $validatorChain->getValidators();
     $this->assertInstanceOf('Zend\\Validator\\Digits', $validators[0]['instance']);
     $filters = $filterChain->getFilters()->toArray();
     $this->assertInstanceOf('Zend\\Filter\\StringTrim', $filters[0]);
 }