二维码已生成但未显示在页面上
QR code is generated but not showing on page
VIEW (HTML)
<tbody>
<?php foreach ($order_data as $key => $value): ?>
<tr>
<td> <?php echo $value['id'] ?> </td>
<td> <img src="<?php echo base_url('z_ex/v_1/render/generateQRcode/'.$value['id']) ?>" alt="..."> </td>
</tr>
<?php endforeach; ?>
</tbody>
控制器(脚本)
<?php defined('BASEPATH') or exit('No direct script access
allowed');
ini_set('display_errors', 1);
error_reporting(E_ALL);
require "vendor/autoload.php";
use Endroid\QrCode\QrCode;
class Render extends Admin_Controller
{
public function __construct()
{
parent::__construct();
$this->not_logged_in();
}
public function index(){
if (!in_array('viewOrder', $this->permission)) {
redirect('z_ex/v_1/dashboard', 'refresh');
}
$data = $this->model_orders->getOrdersTrackingNum();
$this->data['data'] = $data;
$this->load->view('render', $this->data);
}
public function generateQRcode($bill_no = 123456) {
$qr = new QrCode("HEy there");
header('Content-Type: '.$qr->getContentType());
echo $qr->writeString();
}
}
我正在使用 Endroid QrCode 包来生成 QR 码,它是这样显示的(如图所示),没有错误,没有警告,只有黑色背景和一个小的白色方块。,我将输出更改为写入文件并保存,IT WORKS。但我不想保存它,我只想在我动态调用它时显示它,仅此而已。 Header 设置为 image/png,如您在图像右侧所见。
通过将 data:image/png;base64
添加到 HTML 中 img tag
的 src
中,最终解决了这个问题,并且成功了。
谢谢大家
VIEW (HTML)
<tbody>
<?php foreach ($order_data as $key => $value): ?>
<tr>
<td> <?php echo $value['id'] ?> </td>
<td> <img src="<?php echo base_url('z_ex/v_1/render/generateQRcode/'.$value['id']) ?>" alt="..."> </td>
</tr>
<?php endforeach; ?>
</tbody>
控制器(脚本)
<?php defined('BASEPATH') or exit('No direct script access
allowed');
ini_set('display_errors', 1);
error_reporting(E_ALL);
require "vendor/autoload.php";
use Endroid\QrCode\QrCode;
class Render extends Admin_Controller
{
public function __construct()
{
parent::__construct();
$this->not_logged_in();
}
public function index(){
if (!in_array('viewOrder', $this->permission)) {
redirect('z_ex/v_1/dashboard', 'refresh');
}
$data = $this->model_orders->getOrdersTrackingNum();
$this->data['data'] = $data;
$this->load->view('render', $this->data);
}
public function generateQRcode($bill_no = 123456) {
$qr = new QrCode("HEy there");
header('Content-Type: '.$qr->getContentType());
echo $qr->writeString();
}
}
我正在使用 Endroid QrCode 包来生成 QR 码,它是这样显示的(如图所示),没有错误,没有警告,只有黑色背景和一个小的白色方块。,我将输出更改为写入文件并保存,IT WORKS。但我不想保存它,我只想在我动态调用它时显示它,仅此而已。 Header 设置为 image/png,如您在图像右侧所见。
通过将 data:image/png;base64
添加到 HTML 中 img tag
的 src
中,最终解决了这个问题,并且成功了。
谢谢大家