【问题标题】:Image from blob object not displayed in a page来自 blob 对象的图像未显示在页面中
【发布时间】:2015-01-05 04:29:08
【问题描述】:

这是我的 HTML 代码,用于显示存储为存储在数据库中的 blob 对象的图像。

<tr><td>photo</td><td><img src="image.php?id=<?php echo $employee['id']; ?>" /></td></tr>

这是 image.php 文件:

<?php

include db.php;

$employee_id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 0;

try
{ 
  $sql = "SELECT photo
          FROM employee where id = $employee_id limit 1";
  $s = $pdo->prepare($sql);
  $s->execute();
} 
catch (PDOException $e)
{ 
  $error = 'Employee not found' . $e->getMessage();
  include 'error.html.php';
  exit();
} 

$employee = $s->fetch();

$image = $employee['photo'];

header('Content-Type: image/jpeg');
echo $image;

?>

当我查看Firebug中的HTML代码时,我可以看到

<img src="image.php?id=9">

但表格行中没有显示图像。你知道如何找出问题所在吗?

当我在 Firefox 中打开页面 ...image.php?id=9 它显示一条消息

图片 ...image.php?id=9 不能 显示,因为它包含错误。

奇怪的是,我拥有的每张图片都包含错误。我只插入了图像 大小小于 blob 对象。

【问题讨论】:

  • 你能把你用来插入图片的代码发布到博客我用来上传图片到服务器文件夹以便数据库安全快速
  • @sanojlawrence 数据已插入。我可以在MySQL DB 中看到它。
  • 检查此"SELECT photo FROM employee where id = $employee_id limit 1"; 并在图像标签&lt;img src="image.php?id=&lt;?php echo $employee['id']; ?&gt;" /&gt; 中将$employee 更改为$employee_id

标签: php mysql image blob


【解决方案1】:

你有错误吗?

尝试使用“退出;”在 echo 之后并删除结束的 php 标记。 它是可选的,您并不需要它 (http://php.net/manual/en/language.basic-syntax.instruction-separation.php)。

header('Content-Type: image/jpeg');
echo $image;
exit;

【讨论】:

  • 结果是一样的
  • @xralf 图片标签位于哪个页面
  • 在``employee.html.php`
  • 当我将图像插入数据库$image = addslashes(file_get_contents($_FILES['photo']['tmp_name'])); 时,我发现了问题所在。我删除了 addlashes() 函数,出于安全原因建议使用该函数。所以,我希望它仍然是安全的。
猜你喜欢
  • 2012-02-24
  • 2020-08-17
  • 2011-05-27
  • 2019-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多