adt / files
v5.5.1
2024-03-15 14:47 UTC
Requires
- doctrine/orm: ^2.2
- nette/utils: ^2.2 | ^3.0 | ^4.0
README
安装
$ composer require adt/files
- 创建
\ADT\Files\Listeners\FileListener
实例 - 参数$dataDir
是文件保存的目录路径$dataUrl
是指向同一目录的URL- 实现
Doctrine\ORM\EntityMangerInterface
- 将
\ADT\Files\Listeners\FileListener
注册到Doctrine\Common\EventManger
。如果你使用 kdyby ORM 扩展,可以通过添加标签kdyby.subscriber
来实现,如下所示services: - factory: ADT\Files\Listeners\FileListener(%dataFolder%/files, 'files') tags: [kdyby.subscriber]
- 创建你的文件实体,例如
use ADT\Files\Entities\IFileEntity; use ADT\Files\Entities\TFileEntity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity() */ class File implements IFileEntity { use TFileEntity; }
请随意添加你需要的任何额外列,并不要忘记 id/PK/标识符。
用法
// create instance of entity $file = new File(); // set binary data to entity as variable $file->setTemporaryContent($binaryContentInString, $originalFileName); // or set path to temporary file, for example after receiving submitted form with file input $file->setTemporaryFile($pathToTemporaryFile, $originalFileName); $entityManager->persist($file); $entityManager->flush();