我正在尝试显示在php文件中转换的base64图像。但是,当图像不可用或不存在时,我html中的图像将显示为通用图像占位符。 如果有人想知道我是否要显示属于特定网页表单的图像。但是,我有多种形式,当我单击其中一种形式时,我希望能够看到相关的图像。
我已经走了这么远: 我的PHP文件如下:
$imageDate = date_format($currentdate, 'YmdHis');
$path = 'C:/Temp/MgrReportUploads';
$type = pathinfo($path, PATHINFO_EXTENSION);
$files = glob($path.
'/'.$imageDate.
'_*');
if (!empty($files)) {
foreach($files as $image) {
$vals['encodedImages'] = 'data:image/'.$type.
';base64,'.base64_encode($image);
}
}
echo json_encode($ vals); 响应在“网络”选项卡上看起来像这样 returnImages:{,…}
images: "data:image/jpg;base64,QzovVGVtcC9NZ3JSZXBvcnRVcGxvYWRzLzIwMTkxMTA4MTM0MzM5X2plZGkxLmpwZw=="
js文件 //表单和图片上的回调变量
onSuccess: function(data) {
var imgList = document.querySelector('#imageLst'); //div
var img = document.createElement("img");
img.setAttribute("src", data.encodedImages);
imgList.append(img);
}
答案 0 :(得分:1)
将base64_encode($image)
更改为base64_encode(file_get_contents($image))
glob
返回一个包含匹配文件/目录的数组,如果没有文件匹配则返回一个空数组,否则返回FALSE。
您必须将文件内容而非文件路径传递到base64_encode