【问题标题】:Can't get blob transparent image into json using php无法使用php将blob透明图像转换为json
【发布时间】:2014-01-21 23:23:00
【问题描述】:
if (function_exists($_GET['displayResult']))
    displayResult();

function displayResult() {
    $db = new PDO('sqlite:ROS.sqlite');
    $sql = 'select * from Item_Image_Large';
    $result = $db->query($sql);
    $rows[] = array();
    while ($row = $result->fetchObject()) {
        $rows['Item_Image_Large'][] = $row;
        foreach ($rows as $key => $value) {
            $newArrData[$key] = $rows[$key];
            $newArrData[$key]['image_large'] = base64_encode($rows[$key]['image_large']);
        }
    }

    header('Content-type: image/png');
    $result2 = json_encode($newArrData);
    echo $result2;
}

此代码用于从数据库中获取 BLOB 数据并尝试将其转换为 JSON 格式,但它不起作用。 BLOB 数据为 PNG 格式。

【问题讨论】:

  • 是的,但我无法获得输出。
  • 将标题更改为 header('Content-Type: application/json');
  • $rows[$key]['image_large'] 表明它无法在 $rows 数组中找到任何索引 image_large。所以这意味着你的 $rows 数组有问题

标签: php json sqlite blob


【解决方案1】:

改变

header('Content-type: image/png');

header('Content-Type: application/json');

【讨论】:

  • 我尝试了这个,但我得到了类似“未定义索引:image_large”的错误。我知道如果数据库中不存在“image_large”列,则表示这种类型的错误。但我已经有了那一列,并且在其中添加了一些 blob 数据。
  • 试一试,但我在“$newArrData[$key]['image_large'] = base64_encode($rows[$key]['image_large']);”行出现错误
  • 现在尝试检查 $rows[$key]['image_large'] 是否包含数据或为空
  • “注意:未定义的索引:C:\xamp2\htdocs\ros1\readImg.php 中的第 14 行中的 image_large”这是我想要输出为图像时显示的错误类型。
  • 兄弟,您首先需要确保您尝试编码的变量确实具有一定的价值。我认为问题出在 foreach 循环上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
  • 2011-08-31
相关资源
最近更新 更多