如何从数据库检索图像到HTML格式?

时间:2011-08-22 17:23:18

标签: php mysql html database image

我将我的图像名称保存到我的数据库并将图像保存为上传文件。

当用户想要看到它们时,我想用div显示给用户。

这里的事情在我脑海中变得混乱。

这是我的PHP代码

        $con = mysql_connect("localhost","root","");
        if (!$con){die('Could not connect: ' . mysql_error());}
            mysql_select_db("marmaris", $con);
            $bilgi= mysql_query("SELECT * FROM ".$isim." WHERE id='".$id."'");

            while($sutun= mysql_fetch_array($bilgi))
            {
                 $name=$sutun["name"];
                 $bures=$sutun["resbuyuk"];
                 $kures=$sutun["reskucuk"];
                 $aciklama=$sutun["aciklama"];
                 $map=$sutun["map"];
                 $link=$sutun["link"];

            }
            $words = preg_split('/[\s?]+/', $kures);
            $result = count($words);
            for($i=0;$i<$result;$i++){
                $city=$words[$i];
            }

我现在有6张图片$ city是我希望向用户显示该图像的图像之一。

这是我的html部分,不要担心isimid名称,它一次只发送2个字。

 <div id="kucukres">
    <img src="upload/<?php echo $city ?>" alt="Angry face" width="32" height="32" />
    </div>

我想要显示图像,但它只会写出替代字。

总之,我想在上传文件夹中显示已保存(名称)的数据库及其自身的图像。

使用php部分,我从数据库中取出文件的名称;在HTML中,我想显示该图像。

编辑: 这是我的新html标签。

   <div id="kucukres">
   <img src="getres.php?file=<?php echo $isimid;?>"/> 
    </div>

我的php文件是

$bilgi= mysql_query("SELECT reskucuk FROM ".$isim." WHERE id='".$id."'");

            while($sutun= mysql_fetch_array($bilgi))
            {

                 $kures=$sutun["reskucuk"];

            }
            $words = preg_split('/[\s?]+/', $kures);
            $result = count($words);
            //unlink("upload/$word[$isim]");
            for($i=0;$i<$result;$i++){
                $city=$words[$i];
                header('Content-type: image/jpeg'); 
                $pic = 'upload/'.$city; 
                 echo $pic;

但我仍然无法在我的html文件中看到该图片。

1 个答案:

答案 0 :(得分:1)

此主题不缺tutorials and samples

基本上,您尝试做的事涉及两个PHP文件,而不仅仅是您拥有的文件。您需要一个用于页面,一个用于图像(可以重复用于所有图像)。

首先看一下为您的网页呈现的HTML。什么是img标记引用?它正在寻找服务器上的资源(图像文件),因此它自然不会显示任何内容。您的服务器日志还会显示这些图像请求的404错误。

这是因为图像并不是页面的真正部分。它是一个完全独立的资源,页面只是引用它,浏览器的工作就是将它放在适当的位置。因此,您需要创建一个单独的资源(PHP文件)来提供该图像。

我的PHP有点生疏,所以我将按照细节在线推荐许多示例和教程。但结构基本上是这样的:


第A页,主页:

从数据库中获取有关图像的信息。其ID,alt文本(如果适用)等。使用此信息构建img标记。类似的东西:

echo '<img src="/images/dbimage.php?id=' . $id_from_db . '" alt="' . $alt_from_db . '"/>';

页面B,图像页面:

从数据库及其内容类型中获取实际图像(blob),如果它也是动态的。在完成此操作之前写入 no 输出。将response header's content-type设置为图像的内容类型,将原始图像字节写为输出,结束输出。


要记住的主要事情是,图像不会作为页面的一部分发送到浏览器。它是从完全独立的服务器请求中获取的完全独立的资源。您只需要与页面本身分开处理该请求。

(例如,请注意,如果您导航到为img标记生成的网址,则服务器将仅显示图片。主页面不是必需的。)