adt/files

v5.5.1 2024-03-15 14:47 UTC

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();