Drupal的Base64映像出现问题

时间:2018-11-07 21:28:10

标签: image base64 drupal-8

这是我将图像存储在数据库中的方式:

$qr = NULL;
if ($file = file_save_upload('qr', $validators, FALSE, 0)) {
  $type = pathinfo($file->getFileUri(), PATHINFO_EXTENSION);
  $qr = file_get_contents($file->getFileUri());
  $base64 = 'data:image/'.$type.';base64,'.base64_encode($qr);
}

请注意,base64开头的data在此处。然后,我从数据库中检索数据,并放置在图像标签的内部,如下所示:

$form['qr'] = [
  '#prefix' => '<img width="100" height="100" src="'.$document[0]['QR_Image'].'"></img>',
];

但是,当我检查元素时,我得到了一个损坏的图像符号,并且源读取了image/png;base64,...,而没有数据部分。当我在source属性的开头输入数据时,图像就会出现。

你知道为什么Drupal会切断我数据块的数据部分吗?

1 个答案:

答案 0 :(得分:0)

这有点基本,但这可行:

$form['qr'] = [
  '#markup' => new FormattableMarkup('<img width="100" height="100" src="data::src"></img>', [':src' => $document[0]['QR_Image']])
];

我希望它没有斩掉第一个data