尝试显示图片,但显示断开的链接

时间:2013-07-15 07:01:30

标签: php html mysql sql image

我想在我的代码中显示一张图片,但由于某种原因,我得到了一个大的白色几乎空白页面,其中包含断开的链接img。我想显示图像以及任何其他信息。 我还想调整图像的大小(因此它不会覆盖整个页面)。 代码:

<?php

session_start()

?>

<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0" />
<link rel="stylesheet" href="css/style.css" />
</head>

<div id="Container">

<div id="header">
<h1>Welcome!</h1>
</div>

<div id="navigation">

<?php

include_once "navigation.php";

?>

</div>

<div id="Content">

<?php

if (isset($_GET['search'])) {
$Name = $_GET['search'];
mysql_connect("localhost","root","") or die ("Could not connect to the server!");
mysql_select_db("pictures") or die ("That database could not be found!");
$query = mysql_query("SELECT * FROM picture WHERE Name='$Name'") or die ("The query could not be completed, please try again later!");
    if (mysql_num_rows($wepquery) !=1) {
        die ("That name could not be found!");
    }
    while ($row = mysql_fetch_array($query, MYSQL_ASSOC, 0)) {
        $dbName = $row['Name'];
        $dbCreator = $row['Creator'];
        $dbDescription = $row['Description'];
        $imageData = $row['Image'];
    }
    header("Content-type: image/jpeg");
    if($Name != $dbName) {
        die ("There has been a fatal error. Please try again.");
    }
?>
<h2><?php echo $Name; ?></h2>
<br />
<table>
    <tr><td>Creator: <?php echo $dbCreator;?></td></tr>
    <tr><td>Description:<br /><?php echo $dbDescription;?></td></tr>
    <tr><td>Picture:<br /><?php echo $imageData;?></td></tr>
</table>

<?php
} else die ("You need to specify a submission!");

?>

</div>

</div>

</html>

数据库:

id,Name,Creator,Description,Image_name,Image(mediumblob)。

您可以看到最后两个字段专用于图片。是的我知道PDO和MySQLi,但我只是想先完成这个代码。有什么帮助吗?

3 个答案:

答案 0 :(得分:3)

图像需要由URL提供,或者需要将blob转换为数据URI,如下所示:

<table>
    <tr><td>Creator: <?php echo $dbCreator;?></td></tr>
    <tr><td>Description:<br /><?php echo $dbDescription;?></td></tr>
    <tr><td>Picture:<br /><?php echo "<img src='data:image/jpeg;base64," . base64_encode( $imageData ) . "' />"; ?></td></tr>
</table>

答案 1 :(得分:0)

如果你想要图像,你需要用图像标签将其括起来。假设您的$ imageData包含图像的位置,那么您可以执行以下操作。

<img src='<?php echo $imageData;?>' ... />

如果您的$imageData包含图像的实际二进制数据,则需要创建对php脚本的单独调用以返回imageData。并将调用作为img标记的src属性。

答案 2 :(得分:0)

您的路径是否正好指向图像?检查了“../../”?另一个问题,你的图像真的在图像标签内吗?必须有这样的东西:

<img src="<?php echo $imagePath; ? />