2012-04-30 29 views
0

私はDoctrine 2.2.2とOracle DatabaseでSymfony2を使用しています。私はファイルをBLOBとしてOracle DBに保存したいと思います。 DoctrineがBLOB型を持つためのcostum型を書きました。それはこのようにのを見て: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; 
} 
} 

のみ一時、ファイルへのパスを保存しますファイルをアップロードするときに作成されます。

+0

は、あなたがこれを任意の解決策を見つけることがありますか? – Hunt

答えて

1

$ file変数はリソースではないようです。あなたはこの試みることができる

public function convertToPHPValue($value, AbstractPlatform $platform) 
{ 
    return is_file($value) ? file_get_contents($value) : $value; 
} 
+0

いいえ、これはうまくいきません。 Doctrineは一時的にアップロードされたファイルにPathを保存するだけで、データベースからダウンロードしたいときにこのPathを返します。 – rotespferd

+0

あなたのBLOBタイプが正しく登録され、使用されていますか? –

1

がここ教義2.2に教義\ DBAL \タイプBLOB型であるように思わを\ BlobType

関連する問題