Я хочу отправить простое изображение через ответ httpgoundation, с одного контроллера на другой. Вот мой код:
$string = (string)md5(uniqid());
$string = substr($string, 0, $length);
$image = imagecreate(200, 50);
imagefill($image, 0, 0, "#000000");
$headers= array(
'Content-type'=>'image/jpeg',
'Pragma'=>'no-cache',
'Cache-Control'=>'no-cache'
);
$response = new Response( $image, 200, $headers );
return new Response($response);
Ошибка говорит The Response content must be a string or object implementing __toString()
, В поисках ответа с помощью Google я нашел только людей, которые хотят вернуть файл куда-нибудь с сервера (актив). Что я должен сделать, чтобы это работало?
Вы должны использовать return $response;
вместо return new Response($response);
И вы должны конвертировать ресурс изображения в строку. Сделайте следующее:
$string = (string)md5(uniqid());
$string = substr($string, 0, $length);
$image = imagecreate(200, 50);
imagefill($image, 0, 0, "#000000");
$headers= array(
'Content-type'=>'image/jpeg',
'Pragma'=>'no-cache',
'Cache-Control'=>'no-cache'
);
ob_start();
imagejpeg($img);
$imageString = ob_get_clean();
return new Response( $imageString, 200, $headers );
Других решений пока нет …