Exemplo n.º 1
0
 /**
  * @param FileUploadEvent $event
  */
 public function beforeUpload(FileUploadEvent $event)
 {
     if (!$this->belongsToProfile($event->getProfile()->getIdentifier())) {
         return;
     }
     $upload = $event->getFileUpload();
     if (!preg_match("/^image/", $upload->getMimeType())) {
         return;
     }
     $helper = new ImageMagickHelper($upload->getRealPath(), $this->tempFiles, $this->commandDefinitions);
     $tempnam = $helper->execute();
     $pinfo = pathinfo($upload->getUploadFilename());
     $nupload = new FileUpload($tempnam);
     $mimeTypes = new MimeTypes();
     $extension = $mimeTypes->mimeTypeToExtension($nupload->getMimeType());
     $nupload->setOverrideFilename($pinfo['filename'] . '.' . $extension);
     $event->setFileUpload($nupload);
 }
Exemplo n.º 2
0
 /**
  * @test
  */
 public function basicGettersAndSettersShouldWork()
 {
     $upload = new FileUpload(ROOT_TESTS . '/data/self-lussing-manatee.jpg');
     $this->assertNull($upload->getOverrideBasename());
     $this->assertNull($upload->getOverrideFilename());
     $this->assertInstanceOf('DateTime', $upload->getDateUploaded());
     $this->assertEquals('image/jpeg', $upload->getMimeType());
     $this->assertEquals(23239, $upload->getSize());
     $this->assertEquals(ROOT_TESTS . '/data/self-lussing-manatee.jpg', $upload->getRealPath());
     $overrideBaseName = 'lussen';
     $overrideFileName = 'lussen.hof';
     $overrideDate = new DateTime('1978-03-21 09:09:09');
     $upload->setOverrideBaseName($overrideBaseName);
     $upload->setOverrideFileName($overrideFileName);
     $upload->setDateUploaded($overrideDate);
     $this->assertEquals($overrideBaseName, $upload->getOverrideBasename());
     $this->assertEquals($overrideFileName, $upload->getOverrideFilename());
     $this->assertEquals($overrideDate, $upload->getDateUploaded());
 }
Exemplo n.º 3
0
 /**
  * @param  File       $file
  * @param  FileUpload $upload
  * @return Resource
  */
 public function findResourceForUpload(File $file, FileUpload $upload)
 {
     $file = clone $file;
     $hash = sha1_file($upload->getRealPath());
     $profileObj = $this->profiles->getProfile($file->getProfile());
     $finder = new ResourceFinder(array('hash' => $hash));
     $resources = $this->backend->findByFinder($finder);
     if ($resources) {
         foreach ($resources as $resource) {
             if (!$resource->isExclusive()) {
                 $file->setResource($resource);
                 if (!$profileObj->isSharedResourceAllowed($file)) {
                     $file->unsetResource();
                 }
                 break;
             }
         }
     }
     if (!$file->getResource()) {
         $resource = Resource::create();
         $resource->setDateCreated(new DateTime());
         $resource->setHash($hash);
         $resource->setSize($upload->getSize());
         $resource->setMimetype($upload->getMimeType());
         $file->setResource($resource);
         if (!$profileObj->isSharedResourceAllowed($file)) {
             $resource->setExclusive(true);
         }
         $this->create($resource, $upload->getRealPath());
         $file->setResource($resource);
     }
     return $file->getResource();
 }