/** * @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); }
/** * @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()); }
/** * @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(); }