【问题标题】:How to retrieve image from database to html form?如何将图像从数据库检索到 html 表单?
【发布时间】:2011-11-01 08:10:13
【问题描述】:

我将图像名称保存到我的数据库和图像本身以上传文件。

当用户想看到它们时,我想在 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 文件中看到图像。

【问题讨论】:

  • 的输出是什么?

标签: php mysql html database image


【解决方案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 标记生成的 URL,那么服务器将只显示图像。不需要主机页面。)

【讨论】:

  • 非常感谢,这真的帮助我理解了整个事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
  • 2013-06-27
相关资源
最近更新 更多