Php 正在读取eID中的图片,在网页上显示时遇到问题

Php 正在读取eID中的图片,在网页上显示时遇到问题,php,image,yii2,Php,Image,Yii2,我们正在web应用程序中实现比利时eID身份提供程序。在我们试图展示返回的图片之前,一切都很顺利。文档中说,返回的字符串应该在发送到浏览器之前进行base64_解码。但是,这样做会导致“损坏”图像 直接在img标记的src属性中打印字符串似乎也不起作用 有人能给我们指出正确的方向吗?提前谢谢 字符串: \u 9j\u 4AAQSkZJRgABAgE3[…]V9XjlXKMGHtS7aaRnvSAAVXuL2C3H7yQA-NU1H6JQ5NBSIBUPFUESCNJNH1O704D6XIHEV\

我们正在web应用程序中实现比利时eID身份提供程序。在我们试图展示返回的图片之前,一切都很顺利。文档中说,返回的字符串应该在发送到浏览器之前进行
base64_解码。但是,这样做会导致“损坏”图像

直接在
img
标记的
src
属性中打印字符串似乎也不起作用

有人能给我们指出正确的方向吗?提前谢谢

字符串:
\u 9j\u 4AAQSkZJRgABAgE3[…]V9XjlXKMGHtS7aaRnvSAAVXuL2C3H7yQA-NU1H6JQ5NBSIBUPFUESCNJNH1O704D6XIHEV\u Z

文档中的代码:

header('Content-Type: image/jpeg');
session_start();
// echo decoded image payload
echo base64_decode($_SESSION["imagedata"]); 
// imagedata holds the above string
// results in browser error message 'image could not be loaded' when visiting directly
因为我们使用的是Yii2,所以这应该是如下操作:

$response = Yii::$app->getResponse();
$response->format = Response::FORMAT_RAW;
$response->data = Yii::$app->session["imagedata"];
$response->headers->set("Content-Type", "image/jpeg");
//$response->headers->set("Content-Encoding", "base64"); ??

// echo decoded image payload
return Yii::$app->response;
其他许多尝试之一:

<img src="data:image/jpeg;base64,[string]"> <!-- resulted in 0x0 'image' -->


编辑:
事实证明,这与Yii2在authClient中清理响应有关。有人知道如何对某些值禁用它吗?

在您的代码中,我看到
$response->headers->set(“内容类型”,“图像/png”)
文件上写着
jpeg
,所以我想你应该把它改成
image/jpeg
。您混合了错误的图像形式,这可能导致它显示错误。如果这不起作用,请确保您的图像在某种程度上没有混乱或损坏。您可以使用来测试您的图像。

您可以标记示例图像吗?这样我们可以检查它的编码是否正确看起来图像的base64不正确,用另一个图像试试它肯定是base64字符串它不是一个imageHm,问题是,这是我从身份证上得到的字符串。如果我使用带有eID查看器的卡,它可以很好地显示图片。这有可能是另一种编码吗?我用我链接的工具测试了你的图像,但它没有显示出来。这可能只是你的图片,除非你只是给我们一个示例图片,如果你做了,你最好在你迷惑更多人之前编辑这个问题。在测试中,我忘了把它改回“jpeg”。。。在文档中认为它是错误的。找出字符串的错误。正在对响应值进行清理。“/”被替换为“u”,被替换为“-”。@Brainfeeder不错!祝你在余下的项目中好运!向上投票?;)