php从数据库读取图片是乱码该怎么解决
写入$conn=mysql_connect("localhost","root","123");Mysql_select_db("hjshop",$conn);Mysql...
写入
$conn=mysql_connect("localhost","root","123");
Mysql_select_db("hjshop",$conn);
Mysql_query("set names 'gb2312'");
//判断action
$action=isset($_REQUEST['action'])?$_REQUEST['action']:'';
if($action=='add')
{
$name=$_POST['name'];
$price=$_POST['price'];
$style=$_POST['style'];
$num=$_POST['num'];
$text=$_POST['text'];
$image=mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));
$type=$_FILES['photo']['type'];
$in = "insert into goods values('','$user','$name','".$image."','$price','$num','".$type."','$text','$style')";
Mysql_query($in) or die(mysql_error());
读取
$conn=mysql_connect("localhost","root","123");
Mysql_select_db("hjshop",$conn);
Mysql_query("set names 'gb2312'");
$q=mysql_query("select * from goods where user='$user'");
while ( $b=mysql_fetch_assoc($q) )
{
$res[]=$b;
?>
。
。
。
<?php
echo '<p><img src="centergoods.php?action=show&id='.$val['id'].'&t='.time().'" width="150"></p>';
header('content-type:'.$b['type']);
echo $b['pic'];
。
。
。等等
写入是没问题的 ,读取图片总是乱码,而且headder还有问题
Warning: Cannot modify header information - headers already sent by (output started at E:\AppServ\www\shop\centergoods.php:10) in E:\AppServ\www\shop\goods.php on line 48
求指教啊 展开
$conn=mysql_connect("localhost","root","123");
Mysql_select_db("hjshop",$conn);
Mysql_query("set names 'gb2312'");
//判断action
$action=isset($_REQUEST['action'])?$_REQUEST['action']:'';
if($action=='add')
{
$name=$_POST['name'];
$price=$_POST['price'];
$style=$_POST['style'];
$num=$_POST['num'];
$text=$_POST['text'];
$image=mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));
$type=$_FILES['photo']['type'];
$in = "insert into goods values('','$user','$name','".$image."','$price','$num','".$type."','$text','$style')";
Mysql_query($in) or die(mysql_error());
读取
$conn=mysql_connect("localhost","root","123");
Mysql_select_db("hjshop",$conn);
Mysql_query("set names 'gb2312'");
$q=mysql_query("select * from goods where user='$user'");
while ( $b=mysql_fetch_assoc($q) )
{
$res[]=$b;
?>
。
。
。
<?php
echo '<p><img src="centergoods.php?action=show&id='.$val['id'].'&t='.time().'" width="150"></p>';
header('content-type:'.$b['type']);
echo $b['pic'];
。
。
。等等
写入是没问题的 ,读取图片总是乱码,而且headder还有问题
Warning: Cannot modify header information - headers already sent by (output started at E:\AppServ\www\shop\centergoods.php:10) in E:\AppServ\www\shop\goods.php on line 48
求指教啊 展开
展开全部
<?php
echo '<p><img src="centergoods.php?action=show&id='.$val['id'].'&t='.time().'" width="150"></p>';
header('content-type:'.$b['type']);
echo $b['pic'];
................
以上代码在header发送之前有个echo输出了一串字符串.有些header信息要求先发送,之前不能有其他输出.你将header这句放在echo输出之前.
另外,在上面一段代码中,你将上传的图片数据直接保存到数据库中,然后在下面取出来直接发送给浏览器,这是什么逻辑?你发送出去的将是图片的原始数据,浏览器就是按原样显示,一堆乱码.如果你要让它知道这是一张图片,你也得使用header来标识这是图片类型的文件.当然最后是一个单独的php文件处理并输出图片格式的数据供<img>调用.
追问
试过了,还是这个错误。Warning: Cannot modify header information - headers already sent by (output started at E:\AppServ\www\shop\centergoods.php:10) in E:\AppServ\www\shop\goods.php on line 48
追答
这段代码之前有没有其他的输出?包括html输出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |