【问题标题】:Retrieve image long raw datatype stored in oracle database in php在php中检索存储在oracle数据库中的图像长原始数据类型
【发布时间】:2018-10-10 09:47:05
【问题描述】:

我试图显示存储在 oracle 数据库中的图像 我把它作为解码数据 我尝试了这段代码但不起作用

第一种方式

  $img= studimage::select('studimage')->where('studnum',$id)->first();
    header("Content-type: image/jpeg");

   echo ($img->studimage) ;

秒路

echo '<img src="data:image/jpg;base64,'. base64_encode($img->studimage). '" />'; 

这两种方法都行不通:(

【问题讨论】:

  • 是的,我认为 那个 代码行不通。以tour.
  • 您没有向我们展示您尝试过的代码。
  • 您能否在您的帖子中包含该内容正确格式化。

标签: php oracle laravel


【解决方案1】:

我在我的一个项目中使用了相同的功能,请查看下面的代码

您可以制作一个将呈现图像的页面

<img src="image.php?id=123" />

那个 image.php 页面会有这个:

$sql = "SELECT image FROM images WHERE image_id = " . (int) $_GET['id'];
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
if (!$row) {
header('Status: 404 Not Found');
} else {
$img = $row['IMAGE']->load();
header("Content-type: image/jpeg");
print $img;
}

或者,您可以将其 base64 编码到 src 中(注意,并非所有浏览器都能很好地处理这个问题):

<img src="data:image/jpeg;base64,<?php echo base64_encode($img); ?>" />

【讨论】:

  • 这里的图像数据 MM*�����J�:B(1�Oracle Multimedia Toolkit, 6.0o�
  • 在数据库中将列数据类型更改为 blob
  • 我把它改成了blob但是有错误 类OCI-Lob的对象不能被转换成字符串
  • 截断表,然后在存储新图像后更改数据类型
  • 同样的错误 :( OCI-Lob 类的对象无法转换为字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 2012-07-05
  • 2018-07-22
  • 1970-01-01
相关资源
最近更新 更多