php - 交响乐 2 : Upload file and save as blob

标签 php symfony doctrine blob

我正在尝试使用表单和 Doctrine 将图像保存在数据库中。在我的实体中,我这样做了:

/**
 * @ORM\Column(name="photo", type="blob", nullable=true)
 */
private $photo;

private $file;


/**
 * @ORM\PrePersist()
 * @ORM\PreUpdate()
 */
public function upload()
{
    if (null === $this->file) {
        return;
    }

    $this->setPhoto(file_get_contents($this->getFile()));
}

我还在我的表单类型中添加了这个:

->add('file', 'file')

但是当我上传文件时出现这个错误:

Serialization of 'Symfony\Component\HttpFoundation\File\UploadedFile' is not allowed

最佳答案

您必须将图像文件内容保存为二进制

public function upload()
{
    if (null === $this->file) {
        return;
    }

    //$strm = fopen($this->file,'rb');
    $strm = fopen($this->file->getRealPath(),'rb');
    $this->setPhoto(stream_get_contents($strm));
}

UploadedFile是一个扩展 File 的类延伸 SplFileInfo

SplFileInfo 具有函数 getRealPath()返回临时文件名的路径。

这只是为了防止您不想将文件上传到服务器,这样做follow these steps .

关于php - 交响乐 2 : Upload file and save as blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228932/

相关文章:

php - Symfony:无法启用自定义存储库

PHP/Doctrine ORM 多个 'one-to-one' 与同一类的关系

php - 如何通过分页从我的 mysql 数据库表中每页只显示 5 条记录?

php - 在 MySQL 中插入或复制表

php - Symfony2 : losing session variables after redirect

php - 如何使用 symfony2 组件 OutputInterface 和 Table helper 缩进写操作?

php - "annotations"在Doctrine中有什么优点?

php - 查找本月的第二个和第四个星期六

php - PHP中的细粒度错误报告

php - Drupal 8 - 以编程方式禁用或启用主导航上的链接