无法使用 PHP 在 HTML 标记中显示 base64 解码的图像



为什么我不能在HTML标签内显示图像?

<?php
session_start();
$ch = curl_init( 'https://mighty-inlet-78383.herokuapp.com/api/hotels/imagedata');
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => TRUE
));
// Send the request
$response = curl_exec($ch);
// Check for errors
if($response === FALSE){
die(curl_error($ch));
echo 'No responce';
}
// Decode the response
$responseData = json_decode($response, true);
// get data from api to json
foreach($responseData AS $response) {
$hotelImage = $response['hotelImage'];
$imgdecord = base64_decode($hotelImage). "n"; 
if(empty($email)){
echo "No responce from server";
}
else{
echo '<br>';
echo'
<html>
<head></head>
<body>
<img src="data:image/png;base64,' . $imgdecord . '" />
</body>
</html>    
';
}
}
?>

它在浏览器中显示以下结果

z C ZM]y eb 3Ku000b<~_^% HW t} -l )Z/2H .r M g q k٭ q і/P W . b $/a O,U S5 \mr 8 TʓPs| C| u W~l t l- 9 %ۓ E ַ 5 ]z Ou000b' Tl GO oQ E y o l ,児

我的 API 返回如下值

[
{
"_id": "5e8f2e81c15e30001791379e",
"name": "harlyRox",
"email": "hishansjc@gmail.com",
"phone_number": 713677319,
"hotelImage": "iVBORw0KGgoAAAANSUhEUgAABVYAAAMACAYAAADPPjzCAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAP+6SURBVHhe7J0FYB3Htf6P0GLJkm1JlkySGWLG2I7DDG3StEnhFd//vcJrX5k5hddX5vaVU06TtkmaNE2TNszMTHYSc8ys
},..
]

当我删除此行时它可以工作

$imgdecord = base64_decode($hotelImage). "n"; 

并将此 HTML 标记更改为

<img src="data:image/png;base64,' . $hotelImage . '" />

如上所述@LawrenceCherone

最新更新