/** * @param EmailAttachment $emailAttachment * * @return File|null */ protected function copyEmailAttachmentToFileSystem(EmailAttachment $emailAttachment) { $file = new File(); $file->setExtension($emailAttachment->getExtension()); $file->setOriginalFilename($emailAttachment->getFileName()); $file->setMimeType($emailAttachment->getContentType()); $file->setFilename(uniqid() . '.' . $file->getExtension()); $content = ContentDecoder::decode($emailAttachment->getContent()->getContent(), $emailAttachment->getContent()->getContentTransferEncoding()); $this->filesystem->write($file->getFilename(), $content); $f = new ComponentFile($this->getAttachmentFullPath($file->getFilename())); $file->setFile($f); $file->setFileSize($f->getSize()); $file->setUploaded(false); $file->setOwner($this->securityFacadeLink->getService()->getLoggedUser()); return $file; }
/** * Copy attachment file object * * @param File $file * * @return File */ public function copyAttachmentFile(File $file) { $fileCopy = clone $file; $fileCopy->setFilename($this->generateFileName($file->getExtension())); $sourceStream = $this->filesystem->createStream($file->getFilename()); $this->copyStreamToStorage($sourceStream, $fileCopy->getFilename()); return $fileCopy; }
/** * if in form was clicked delete button and file has not file name - then delete this file record from the db * * @param File $entity * @param EntityManager $em */ public function checkOnDelete(File $entity, EntityManager $em) { if ($entity->isEmptyFile() && $entity->getFilename() === null) { $em->remove($entity); } }