我正在尝试将存储在oracle DB中的图像显示为BLOB数据类型。这是我的MODEL代码
function viewblobData() {
$user = $this->session->userdata('user_logged_in');
$returnLobValue = '';
if (!empty($user)) {
$conn = $this->db->conn_id;
$sql = "SELECT * FROM OP_REG_IMAGE WHERE REG_NO = '$user'";
$stmt = oci_parse($conn, $sql);
oci_execute($stmt)
or die("Unable to execute query<br/>");
while ($row = oci_fetch_assoc($stmt)) {
$returnLobValue = $row['PAT_IMAGE']->load();
header("Content-type: image/jpg");
}
}
return $returnLobValue;
}
这是在视图中显示
<?php echo $this->MY_MODEL->viewblobData(); ?>
但它的节目&#34;图片http://localhost/.....
无法显示,因为它包含错误&#34;
如果我删除该行header("Content-type: image/jpg");
,则会显示如下整页:
�M�t9UYG�G��d���~��5 �V�W��jժ�I�P��l6;��Po�ߖ�]��o�_���v��]o7{���Xr?_� ��bp��F3�s>ߙ�K)��f_�w��9����Z#���i�:�V�Y�h�=�����o���{��px=����o��fk���:>����~u�=��w��~9������y�]^����ٹ_���
有人可以帮忙吗?
答案 0 :(得分:0)
您可以使用图像库: - 例如
$img = imagecreatefromstring($row['PAT_IMAGE']);
if ($img !== false) {
$image_new_name = 'sig_' . time() . '.png';
$image_path = 'upload/' . $image_new_name;
$image_name = $ROOT_DIR . '/' . $image_path;
if (!file_exists($image_name)) {
imagepng($img, $image_name);
imagedestroy($img);
} else {
$image_new_name = 'new_' . $image_new_name;
$image_path = 'upload/new_' . $image_new_name;
$image_name = $ROOT_DIR . '/' . $image_path;
imagepng($img, $image_name);
imagedestroy($img);
}
此代码将生成从您的数据到提供的dir
的图像。然后使用该图像显示。请享用。 :)