在modx中显示来自mysql blob的图像

时间:2012-12-30 16:51:16

标签: mysql printing blob modx

目录有一个modx片段(如下)。并且有一个chank(模板),其中我需要粘贴一段代码来显示图像,存储在mysql数据库中,用于目录列表中的每个块。数据调用是[[+ pic]],但简单地这样就打印出一系列(ascii?)符号。有关如何从db加载和打印(blob)图像的建议,但在我看来,它可以通过对目录中的每个块多次调用db来同时崩溃服务器。

片段:

<?php
$path = MODX_CORE_PATH . 'components/zzz/';
$result = $modx->addPackage('zzz', $path . 'model/','wep_');
if (! $result) {
  return 'bla-bla-bla';
}

$sortByDatetime = 'datetime';     //sortby date
$sortByName = 'company_name'; //sortby alphabet

$s = $modx->newQuery('Company');

$s->sortby($sortByDatetime,'ASC'); //first-order sorting
$s->sortby($sortByName,'ASC'); //sub-group sorting

$s->where(array(
   'type'     => $filter,
));
$out = $modx->getCollection('Company',$s);

$output = '';
$num = 0;
foreach ($out as $item) {  //get each $item from $out collection
    $fields = $item->toArray();
    $output .= $modx->getChunk('showAllCompaniesTpl', $fields);  //append parts by template
                $num += 1;
                if ($num == 10) break;
}
return $output;

那么,如果可能的话,如何在一些代码行中将blob中的条目集显示(解码?)图像到目录中?

1 个答案:

答案 0 :(得分:0)

将此内容放在$fields = $item->toArray();之后再试一次

$fields['pic'] = '<img src="data:image/png;base64,'.base64_encode($fields['pic']).'"/>';

如果您的图片不是png - 更改image/png