0

我将 Symfony2 与 Doctrine 2.2.2 和 Oracle 数据库一起使用。我想在 Oracle DB 中将文件另存为 BLOB。我为 Doctrine 编写了一个服装类型以具有 BLOB 类型。它看起来像这样:

class Blob extends Type
{
const BLOB = 'blob';


public function convertToPHPValue($value, AbstractPlatform $platform)
{
    return (is_resource($value)) ? stream_get_contents($value) : $value;
}

public function getSqlDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
{
    return 'BLOB';
}

public function getBindingType() {
    return \PDO::PARAM_LOB;
}

public function getName()
{
    return self::BLOB;
}
}

持有该文件的实体如下:

<?php

class Document
{
/**
 * @var integer $id
 */
private $id;

/**
 * @var file $file
 */
private $file;

/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}

/**
 * Set file
 *
 * @param blob $file
 */
public function setFile($file)
{
    $this->file = $file;
}

/**
 * Get file
 *
 * @return blob 
 */
public function getFile()
{
    return $this->file;
}
}

当我想用我的控制器原则保存文件时,只保存上传文件时将创建的临时文件的路径。

4

2 回答 2

1

似乎 $file 变量不是资源。

你可以试试这个:

public function convertToPHPValue($value, AbstractPlatform $platform)
{
    return is_file($value) ? file_get_contents($value) : $value;
}
于 2012-05-01T10:35:02.307 回答
1

似乎是学说 2.2 中的 blob 类型,此处 Doctrine\DBAL\Types\BlobType

于 2013-03-13T15:43:11.383 回答