如何在html页面

时间:2018-02-05 11:12:26

标签: php mysql blob

我已经尝试了几次但是我没有找到解决方案,我需要在数据库中显示一个保存为BLOB的图像。

保存到数据库并显示数据的部分代码

function manage_report($param1 = '', $param2 = '', $param3 = '')
{
    if ($this->session->userdata('doctor_login') != 1)
        redirect(base_url() . 'index.php?login', 'refresh');

    if ($param1 == 'create') {

        $data['img_principal'] = $this->input->post('img_principal');

        $this->db->insert('report', $data);
        $this->session->set_flashdata('flash_message', get_phrase('report_created'));
        redirect(base_url() . 'index.php?doctor/manage_report', 'refresh');
    }
    if ($param1 == 'edit' && $param2 == 'do_update') {

        $data['img_principal'] = $this->input->post('img_principal');

        $this->db->where('report_id', $param3);
        $this->db->update('report', $data);
        $this->session->set_flashdata('flash_message', get_phrase('account_updated'));
        redirect(base_url() . 'index.php?doctor/manage_report', 'refresh');

    } else if ($param1 == 'edit') {
        $page_data['edit_profile'] = $this->db->get_where('report', array(
            'report_id' => $param2
        ))->result_array();
    } 

    $page_data['page_name']  = 'manage_report';
    $page_data['page_title'] = get_phrase('manage_report');
    $page_data['reports']    = $this->db->get('report')->result_array();
    $this->load->view('index', $page_data);
}

我正试图在.html页面上显示

<img src="<?php echo $row['img_principal']; ?>"/>

数据库

CREATE TABLE `report` ( `report_id` int(11) NOT NULL, `img_principal` blo NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

2 个答案:

答案 0 :(得分:0)

您需要一个可以为这些blob提供服务的脚本,例如将其称为img.php。需要传递某种ID,以便它也可以在数据库中找到该行。

可以用HTML调用脚本:

<img src="/img.php?image_id=1" alt="Database image no. 1">

此脚本应该:

  1. 连接数据库
  2. 使用此案例中的(int) $_GET['image_id']输入
  3. 找到数据
  4. 发送Content-Type: image/jpeg标题(或相应的)
  5. 发送Content-Length标题(blob的strlen
  6. 发送Content-Disposition: inline标题
  7. 回应blob

答案 1 :(得分:0)

试试这个:

echo '<img src="data:image/jpeg;base64,'.base64_encode(  $row['img_principal'];).'"/>';