/** * This method marks an entity to be uploaded as soon as the "flush" method of your object manager is called. * After calling this method, the file info you passed is set for this entity in the listener. This is all it takes * to upload a file for an entity in the Uploadable extension. * * @param object $entity - The entity you are marking to "Upload" as soon as you call "flush". * @param mixed $fileInfo - The file info object or array. In Symfony 2, this will be typically an UploadedFile instance. */ public function markEntityToUpload($entity, $fileInfo) { if (is_object($fileInfo) && $fileInfo instanceof UploadedFile) { $fileInfoClass = $this->fileInfoClass; $fileInfo = new $fileInfoClass($fileInfo); } $this->listener->addEntityFileInfo($entity, $fileInfo); }
/** * {@inheritDoc} */ public function doMoveFile($source, $dest, $isUploadedFile = null) { if (null === $isUploadedFile) { return true; } return parent::doMoveFile($source, $dest, $isUploadedFile); }
public function test_useGeneratedFilenameWhenAppendingNumbers() { // We set the default path on the listener $this->listener->setDefaultPath($this->destinationTestDir); $file = new FileWithAlphanumericName(); $fileInfo = $this->generateUploadedFile('file', $this->testFileWithSpaces, $this->testFilenameWithSpaces); $this->listener->addEntityFileInfo($file, $fileInfo); $this->em->persist($file); $this->em->flush(); $filePath = $file->getPath() . '/' . str_replace(' ', '-', $fileInfo['name']); $this->assertPathEquals($filePath, $file->getFilePath()); $file = new FileWithAlphanumericName(); $this->listener->addEntityFileInfo($file, $fileInfo); $this->em->persist($file); $this->em->flush(); $filePath = $file->getPath() . '/' . str_replace(' ', '-', str_replace('.txt', '-2.txt', $fileInfo['name'])); $this->assertPathEquals($filePath, $file->getFilePath()); }
public function doMoveFile($source, $dest, $isUploadedFile = true) { return $this->returnFalseOnMoveUploadedFile ? false : parent::doMoveFile($source, $dest, false); }
/** * Set and validate default path * @param string $path * @throws FileNotFoundException * @throws InvalidStateException */ public function setDefaultPath($path) { // Validate default path if (!file_exists($path) && !mkdir($path, 0777, TRUE)) { throw new FileNotFoundException("Default upload path: \"{$path}\" not found."); } if (!is_dir($path)) { throw new InvalidStateException("Default upload path: \"{$path}\" is not dir."); } else { if (!is_writable($path)) { throw new InvalidStateException("Default upload path: \"{$path}\" is not writable."); } } $path = self::normalizePath($path); parent::setDefaultPath($path); }