首页 > 后端开发 > php教程 > 显示数据库中blob类型的图片,我图片显示不出来

显示数据库中blob类型的图片,我图片显示不出来

WBOY
发布: 2016-06-23 14:10:53
原创
1811 人浏览过

showimage.php

<?php  include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/utilityfunction/SqlHelp.class.php';include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/Comm.class.php';$SqlHelper = new SqlHelp ( 'read', 'qztoa' );$sql = "select * from qzt_image";$query = $SqlHelper->query($sql );$query_num = $SqlHelper->num_rows ($query );$rows = array ();  $retarr = array (); $query =$SqlHelper->query ( $sql );if($query){$arr_teainfo2 = array ();while ( $arr_teainfo = $SqlHelper->fetch_assoc($query) ) {$arr_teainfo2 [] = $arr_teainfo;$Id=$arr_teainfo["Id"];echo $arr_teainfo["Id"];echo "<IMG SRC=\"Second.php3?Id=$Id\">"; }}?>  
登录后复制


Second.php3
<?php  include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/utilityfunction/SqlHelp.class.php';include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/Comm.class.php';$SqlHelper = new SqlHelp ( 'read', 'qztoa' );$sql = "select * from qzt_image where Id=10";$query = $SqlHelper->query($sql );$query_num = $SqlHelper->num_rows ($query );$rows = array ();  $retarr = array (); $query =$SqlHelper->query ( $sql );if($query){$arr_teainfo2 = array ();while ( $arr_teainfo = $SqlHelper->fetch_assoc($query) ) {$arr_teainfo2 [] = $arr_teainfo;$Id=$arr_teainfo["Id"];$imagetype=$arr_teainfo["imagetype"];//echo $arr_teainfo["images"];//Header( "Content-type: $imagetype"); header('Content-type: $imagetype');echo $arr_teainfo["images"];}}?>   
登录后复制


请问我哪里有问题?PHP新人,不知道哪里错了


回复讨论(解决方案)

1、你的 php3 类型文件能被正确解析吗?检查一下配置文件
2、如果程序文件时 utf-8 编码的,请确认都没有 BOM 头
3、Second.php3 输出图片不要用循环

1、你的 php3 类型文件能被正确解析吗?检查一下配置文件
2、如果程序文件时 utf-8 编码的,请确认都没有 BOM 头
3、Second.php3 输出图片不要用循环
我在httpd.conf文件里面加了AddType application/x-httpd-php .php .html .htm .php3
这样是不是就能正常解析php3 类型文件了?

1、你的 php3 类型文件能被正确解析吗?检查一下配置文件
2、如果程序文件时 utf-8 编码的,请确认都没有 BOM 头
3、Second.php3 输出图片不要用循环
我程序文件是gbk的

我测试了,.php3可以正常解析的,但是还是不行啊谁帮下啊

图片显示不出来,是程序报错?还是路径不对。
先打印下,看有数据没,如果有,再看下,显示的路径是否正确。

图片显示不出来,是程序报错?还是路径不对。
先打印下,看有数据没,如果有,再看下,显示的路径是否正确。
先运行php3把image打印出来了,正常的,没有报错

<?php  include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/utilityfunction/SqlHelp.class.php';include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/Comm.class.php';$SqlHelper = new SqlHelp ( 'read', 'qztoa' );$sql = "select * from qzt_image where Id=10";$query = $SqlHelper->query($sql );$query_num = $SqlHelper->num_rows ($query );$rows = array ();  $retarr = array (); $query =$SqlHelper->query ( $sql );if($query){$arr_teainfo2 = array ();while ( $arr_teainfo = $SqlHelper->fetch_assoc($query) ) {$arr_teainfo2 [] = $arr_teainfo;$Id=$arr_teainfo["Id"];$imagetype=$arr_teainfo["imagetype"];$image= $arr_teainfo["images"];}//header('Content-type: image/jpeg ');echo $image; }
登录后复制
登录后复制
登录后复制

上面代码贴出来多了

,我程序里没有的


图片显示不出来,是程序报错?还是路径不对。
先打印下,看有数据没,如果有,再看下,显示的路径是否正确。
先运行php3把image打印出来了,正常的,没有报错

<?php  include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/utilityfunction/SqlHelp.class.php';include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/Comm.class.php';$SqlHelper = new SqlHelp ( 'read', 'qztoa' );$sql = "select * from qzt_image where Id=10";$query = $SqlHelper->query($sql );$query_num = $SqlHelper->num_rows ($query );$rows = array ();  $retarr = array (); $query =$SqlHelper->query ( $sql );if($query){$arr_teainfo2 = array ();while ( $arr_teainfo = $SqlHelper->fetch_assoc($query) ) {$arr_teainfo2 [] = $arr_teainfo;$Id=$arr_teainfo["Id"];$imagetype=$arr_teainfo["imagetype"];$image= $arr_teainfo["images"];}//header('Content-type: image/jpeg ');echo $image; }
登录后复制
登录后复制
登录后复制

程序没报错,把输出的数据复制到地址栏,有图片显示没??



图片显示不出来,是程序报错?还是路径不对。
先打印下,看有数据没,如果有,再看下,显示的路径是否正确。
先运行php3把image打印出来了,正常的,没有报错

<?php  include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/utilityfunction/SqlHelp.class.php';include_once dirname(dirname (dirname ( __FILE__ ))). '/yeqztsys1.0/Comm.class.php';$SqlHelper = new SqlHelp ( 'read', 'qztoa' );$sql = "select * from qzt_image where Id=10";$query = $SqlHelper->query($sql );$query_num = $SqlHelper->num_rows ($query );$rows = array ();  $retarr = array (); $query =$SqlHelper->query ( $sql );if($query){$arr_teainfo2 = array ();while ( $arr_teainfo = $SqlHelper->fetch_assoc($query) ) {$arr_teainfo2 [] = $arr_teainfo;$Id=$arr_teainfo["Id"];$imagetype=$arr_teainfo["imagetype"];$image= $arr_teainfo["images"];}//header('Content-type: image/jpeg ');echo $image; }
登录后复制
登录后复制
登录后复制

程序没报错,把输出的数据复制到地址栏,有图片显示没??
这个存的不是图片的地址,而是blob数据类型的

浏览器地址栏 http://localhost/Second.php3?Id=10
能开到什么?

浏览器地址栏 http://localhost/Second.php3?Id=10
能开到什么?
如果有header('Content-type: image/jpeg ');的话,是一个显示叉叉的图片,就是显示不出来,如果注释掉,就是执行echo $image; ,显示的是好多看不懂的符号乱码,因为是blob类型,肯定不能正常输出的

浏览器地址栏 http://localhost/Second.php3?Id=10
能开到什么?
我测试的id为10的图片是jpg的,所以我先写出固定的header('Content-type: image/jpeg ');

一大堆乱七八糟的?没关系,截个图

截个图都卡半天

下面还有好多好多

一大堆乱七八糟的?没关系,截个图 能看懂吗,那些乱七八糟的,不知道什么东西

你的图片格式有问题!

这样吧,你把 $image 写到文件里,比如 file_put_contents('test.jpg', $image);
然后把他发上来

<?php$query = "select * from qzt_image where id=10";$result = mysql_query($query);$row = @mysql_fetch_array($result);Header( "Content-type: image/pjpeg");echo "$row[uploadfile]";?>
登录后复制
登录后复制

我的原始版代码。
是pjpeg哦。

你的图片格式有问题!

这样吧,你把 $image 写到文件里,比如 file_put_contents('test.jpg', $image);
然后把他发上来
前几天放假了,昨天请假了,等下我传上去

你的图片格式有问题!

这样吧,你把 $image 写到文件里,比如 file_put_contents('test.jpg', $image);
然后把他发上来
可以正常写入的

原来 test.jpg是另一张图,写入后就是这张图了

<?php$query = "select * from qzt_image where id=10";$result = mysql_query($query);$row = @mysql_fetch_array($result);Header( "Content-type: image/pjpeg");echo "$row[uploadfile]";?>
登录后复制
登录后复制

我的原始版代码。
是pjpeg哦。
我用pjpeg还是显示不出来,我用的gbk的格式,请问你用的什么格式?

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板