You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:无法从数据库Blob类型获取签名并在HTML页面显示

问题分析与修复方案

你的代码存在两个关键问题,导致签名无法在页面显示:

  • img标签的src属性不完整:你只写了data URI的前缀,没有把编码后的base64数据拼接进去,浏览器无法识别完整的图片数据。
  • 可能存在重复编码问题:如果数据库中存储的signature已经是base64编码后的字符串,再次调用base64_encode()会导致数据错误,图片无法解析。

修复后的代码

<?php
include('config.php');

$sql = "SELECT signature FROM details WHERE id = ?";
$stmt = $pdo->prepare($sql);

$id = "116"; // Replace with the ID of the signature data to retrieve
$stmt->bindParam(1, $id, PDO::PARAM_INT);

$stmt->execute();

// Fetch the result and return the base64-encoded signature data
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if ($result) {
    $signatureData = $result['signature'];
    // 注意:如果数据库中存储的是base64字符串,直接用$signatureData即可,无需再次编码
    $base64Data = base64_encode($signatureData);
    // 拼接完整的img标签
    $img = '<img src="data:image/png;base64,' . $base64Data . '">';
    echo $img;
} else {
    echo "No signature data found for ID $id";
}
?>

额外检查项

  • 确认数据库中signature字段存储的是PNG图片的原始二进制数据;如果之前存储的是base64字符串,删除base64_encode()这一行,直接使用$signatureData拼接src。
  • 可以打开浏览器开发者工具,查看img标签的src属性,确认数据是否完整、格式是否正确。

内容的提问来源于stack exchange,提问作者Taimur Hadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:55:11