如何使用FOSRestBundle从base64输出1x1像素

时间:2015-06-30 19:49:55

标签: php symfony fosrestbundle symfony-2.6

我需要回复:

return header('Content-Type: image/png'); 
echo base64_decode('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=');

使用FOSRestBundle,但我不知道如何处理echo。我有这段代码:

public function getTrackingEmailAction(ParamFetcher $paramFetcher, Request $request)
{
    $view = View::create();
    $response = [];
    $view->setData($response)->setHeader('Content-Type', 'image/png')->setStatusCode(200);

    return $view;
}

如何发送base64以显示1x1像素?我需要一个视图吗? (树枝视图)

1 个答案:

答案 0 :(得分:1)

根据上面的代码片段,您不必返回Base64。相反,情况正好相反:你必须返回原始图像数据,这只是Base64编码,因为在PHP代码中有二进制内容不太好; - )

在您的控制器操作中,您只需返回一个正确的响应,其中图像数据为内容

return new Response(base64_decode('...'), 200, ['Content-Type' => 'image/png']);