在请大侠帮忙!! php中如何显示mysql数据库中以blog类型存储的图片文件?
如题:在php中如何显示mysql数据库中以blog类型存储的图片文件?
还有:在php中有没有类似asp中的response.binarywrite这样专门用来度曲二进制数据的函数?
我发现echo好像不能
请大侠帮忙!!!!!
问题点数:20、回复次数:9Top
1 楼ice_berg16(寻梦的稻草人)回复于 2005-01-02 22:52:58 得分 3
要先header一下content-type类型才行
header ("Content-type: image/gif");Top
2 楼hbgth()回复于 2005-01-02 23:10:26 得分 0
我已经将图片插入到数据库中了,在管理mysql数据库的软件中看这些图片能正常显示。插入没有问题。
以下是我的显示页面的代码。但我显示出来的是乱码,不是图片,那是怎么回事啊???
<?
require_once('./conn.php');
$myID = trim($_GET["id"]);
$myType = trim($_GET["type"]);
$mySize = trim($_GET["size"]);
if(!$myID=="")
{
$sql = "SELECT bookface FROM book WHERE bookid=".$myID;
$result = mysql_query($sql,$conn) or die("查询失败!" . mysql_error()); //执行添加命令!
while ($row = mysql_fetch_object($result))
{
Header("Content-type: image/".$myType);
echo $row->bookface;
}
}
else
{
echo "<center>暂无预览图片!</center>";
}
mysql_free_result($result); //释放结果内存资源
mysql_close($conn); // 断开连接
?>Top
3 楼lawyu(雨淋漓)回复于 2005-01-03 00:01:53 得分 4
图片一般在客户端用html标记<img src="...">显示就可以了啊,从数据库中读出的是图片的文件名,把src中的...换成相应的路径/<?=$row['image'] ?>Top
4 楼lawyu(雨淋漓)回复于 2005-01-03 00:04:15 得分 2
blog的数据如果是文本用echo显示是没有问题的,如果是图片或声音一般数据库里存的是文件名
图片或声音通过程序上传到服务器Top
5 楼cloudchen(cloudchen)回复于 2005-01-03 09:07:32 得分 3
直接echo二进制数据就可以了
不能和文本混合echoTop
6 楼cloudchen(cloudchen)回复于 2005-01-03 09:08:02 得分 5
php不需要asp中专门针对二进制输出的binarywrite方法Top
7 楼mrshelly(Shelly)回复于 2005-01-03 09:25:51 得分 3
getimage.php
<?
修改HTTP头信息
读出数据 并 echo
?>
显示图片时
<IMG src="getimage.php?id=1">
Top
8 楼hbgth()回复于 2005-01-03 10:37:40 得分 0
各位大侠:我在这里把我的添加和显示2个页面的代码贴出来,请帮我看看是不是有什么错误
================================================
add.php [添加页面]
-------
<?
if($_POST["BtAdd"])
{
$bookid = trim($_POST["bookid"]);
$bookname = trim($_POST["bookname"]);
$writer = trim($_POST["writer"]);
$booktype = trim($_POST["booktype"]);
$publisher = trim($_POST["publisher"]);
$publishdate = trim($_POST["publishdate"]);
$buydate = trim($_POST["buydate"]);
$price = trim($_POST["price"]);
$isdn = trim($_POST["isdn"]);
$comment = trim($_POST["comment"]);
$islend = trim($_POST["islend"]);
$bookface = trim($_POST["bookface"]);
$my_booknull = "";
if (!$bookname=="")//如果书名不为空
{
if (!$bookface=="") //说明有图片
{
//获取图片格式 [从右向左截取-3个字节刚好为"gif","jpg","png"等]
if (substr($bookface,-3)=="jpg"){$pic_type = "jpeg";}else{$pic_type = substr($bookface,-3);}
$pic_size = filesize($bookface); //获取图片大小
$my_bookface = addslashes(fread(fopen($bookface,"r"),$pic_size));
$sql = "INSERT INTO book(bookname,writer,booktype,publisher,publishdate,buydate,price,isdn,comment,islend,bookface) VALUES('$bookname','$writer','$booktype','$publisher','$publishdate','$buydate','$price','$isdn','$comment','$islend','$my_bookface')";
}
else //说明没图片
{
$sql = "INSERT INTO book(bookname,writer,booktype,publisher,publishdate,buydate,price,isdn,comment,islend,bookface) VALUES('$bookname','$writer','$booktype','$publisher','$publishdate','$buydate','$price','$isdn','$comment','$islend','$my_booknull')";
}
$result = mysql_query($sql,$conn) or die("添加失败!" . mysql_error()); //执行添加
if ($result)
{
echo "添加成功!";
$add_id = mysql_insert_id(); //获取最新添加的纪录的编号
?>
<A href='picview.php?id=<?echo $add_id;?>&type=<?echo $pic_type;?>&size=<?echo $pic_size;?>' target='Frame'>预 览</A>
<?
}
}
else
{
echo "请输入书名!";
}
}
mysql_free_result($result); //释放结果内存资源
mysql_close($conn); // 断开连接
?>
==================================================
picview.php [预览页面]
-----------
<?php
require_once('./conn.php');
$myID = trim($_GET["id"]);
$myType = trim($_GET["type"]);
$mySize = trim($_GET["size"]);
if(!$myID=="")
{
$sql = "SELECT bookface FROM book WHERE bookid=".$myID;
$result = mysql_query($sql,$conn) or die("查询失败!" . mysql_error()); //执行查询
$pic = mysql_result($result,0);
Header("Content-type: image/".$myType);
echo $pic;
}
mysql_free_result($result); //释放结果内存资源
mysql_close($conn); // 断开连接
?>
======================================
节选的一部分乱码
----------------
GIF89a€€=? ?U? ?P ??SuW978敀?656?吞悙扝HIzz{``a吵础、寣崐妺枤 $掴雰彜8*3Bɡ娑昔掼眸!O+b?i?e?p?j礎v肎{?m?b濫u篐y緿p矴t礏jw筕壱S勌Hr?DiP......
==============================================
如果诸位发现我的代码有错误,所以导致出现乱码,恳请贴出来,谢谢了Top
9 楼hbgth()回复于 2005-01-05 15:14:51 得分 0
问题已经解决 不过不是采用echo .... 的方法 而是采用gd库函数绘制出来的:)Top




