私のクライアントでは、いくつかのさまざまなファイルにBLOBストレージを使用する必要があります。
そこで、BlobクラスがDoctrine \ DBAL \ Types\Typeを拡張する独立したバンドルを作成しました。バンドルクラスのブート関数を使用します。
これはかなりうまく機能し、データベースのBlobデータに書き込むことができます。
しかし、:/以降はドキュメントをダウンロードできません
私は持っています:
public function downloadAction($id) {
$em = $this->getDoctrine()->getManager();
/* @var $entity Document */
$entity = $em->getRepository('Lille3SapBundle:Document')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find Document entity.');
}
$file = $entity->getFichier();
$response = new \Symfony\Component\HttpFoundation\Response($file, 200, array(
'Content-Type' => 'application/octet-stream',
'Content-Length' => sizeof($file),
'Content-Disposition' => 'attachment; filename="'.$entity->getNomDocument().'"',
));
return $response;
}
例外があります。応答コンテンツは、指定された__toString()、"resource"を実装する文字列またはオブジェクトである必要があります。
実際、$ file値は予期されるBLOBではなく、リソースID#123のようなものです。
-> BLOBデータフィールドの値を確認しましたが、データベースで問題ありません
では、どうすればコントローラーにリソースID#111ではなくblob行を強制することができますか?