我保存我的图像名称到我的数据库和图像本身上传文件。
当用户想看到它们时,我想用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名称,它只是一次发送两个字。
<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文件中的图像。
最佳答案
在这个问题上不乏tutorials and samples。
从本质上说,您要做的是两个PHP文件,而不仅仅是一个。您需要一个用于页面,一个用于图像(可以对所有图像重复使用)。
首先看一下为页面呈现的HTML。标签引用是什么?它在服务器上寻找一个不存在的资源(图像文件),因此自然不会显示任何内容。服务器日志还将显示这些图像请求的404个错误。
这是因为图像并不是页面的一部分。这是一个完全独立的资源,页面只是在引用它,浏览器的工作是将它放置到位。因此,您需要创建一个单独的资源(PHP文件)来提供该图像。
我的PHP有点生疏,所以我将参考许多在线示例和教程来了解细节。但结构基本上是这样的:
A页,主机页:
从数据库中获取有关图像的信息。其ID、其img
文本(如果适用)等。使用此信息构建alt
标记。类似于:
echo '<img src="/images/dbimage.php?id=' . $id_from_db . '" alt="' . $alt_from_db . '"/>';
B页,图像页:
从数据库中获取实际的图像(blob)及其内容类型(如果也是动态的)。在这之前不写输出。将response header's content-type设置为图像的内容类型,将原始图像字节写入输出,结束输出。
同样要记住的一点是,图像不会作为页面的一部分发送到浏览器。它是从对服务器的完全独立的请求中获取的完全独立的资源。您只需要将该请求与页面本身分开处理。
(注意,例如,如果您导航到为
img
标记生成的URL,那么服务器将只显示图像。不需要主机页。)