doulao1934 2012-08-24 23:27
浏览 335

<Mongodb二进制数据>作为浏览器输出

I have stored some images in Mongo DB GridFS. I am now trying to display the image but am running into serious challenges. All I see is <Mongo Binary Data> as the out put. I have played around with setting headers but nothing seems to be working fine. All I see is <Mongo Binary Data>. I try sending an image header (jpeg/png etc) but the image comes out empty. Why ?

Here is my code that displays the image:

public function someAction($imageID)
    {
   $dm = $this->get('doctrine.odm.mongodb.document_manager');

         $image = $dm->createQueryBuilder('Mybundle:Asset')
                     ->field('id')->equals($imageID)
                     ->getQuery()
                     ->getSingleResult();

  return new Response($image->getFile()->getBytes(), 200, array('Content-Type' => 'image/jpeg'));

}

When I try changing the content type to text, I get <Mongo Binary Data> again.

Here is my routing file:

my_route:
    pattern:  /showimage/{imageID}
    defaults: { _controller: MyBundle:someController:someAction}
    requirements:
        _method:  GET
  • 写回答

1条回答 默认 最新

  • douza6300 2014-01-15 01:08
    关注

    "<Mongo Binary Data>" is the string returned from MongoBinData::__toString(). This behavior goes back a number of years, but I assume it was implemented to avoid inadvertently generating large output or echoing non-printable characters if MongoBinData was ever cast to a string.

    In your case, I assume $image->getFile() corresponds to a Doctrine\MongoDB\GridFSFile object. I would start debugging there to see if getBytes() is returning the internal $bytes property of the object, some file contents, or chaining to MongoGridFSFile::getBytes().

    Additionally, sharing the model/mapping information for your Asset class could help, as well as the non-hydrated data returned by the same query. Adding ->hydrate(false) to the query builder chain would accomplish the latter.

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)