
php在mysql中存储和读取图片
第一个程序将图片存入mysql<?phpinclude'config.php';echo'aa<pre>';print_r($_POST['pic']);echo'</p...
第一个程序将图片存入mysql
<?php
include 'config.php';
echo 'aa<pre>';
print_r($_POST['pic']);
echo'</pre>';
if($fp=@fopen($_POST['pic'],"r")){
echo '<br>open successfully<br>';
if($picdata=@fread($fp,filesize($_POST['pic']))){
echo 'yes<br>';
$picdata=addslashes($picdata);
$_POST['pic']=array();
}
$qu="insert into images(picdata)values('$picdata')";
mysql_query($qu) or mysql_error();
fclose($fp);
}
?>
<form action="test.php"method="post"enctype="myltypart/form-data">
<input type="file" name="pic"><br>
<input type="submit" value="sub">
</form>
第二个读取显示图片<?php
include 'config.php';
$qu="select picdata from images ";
$res=@mysql_query($qu)or mysql_error();
$num=@mysql_num_rows($res);
if($num==0){
exit;
}
$row=@mysql_fetch_assoc($res);
header("Content-type:image/");
echo $row['picdata'];
?>
两个程序都成功运行过,没再修改但之后一直不能再运行,第一个fread()读不了文件,第二个不能运行,浏览器提示文件打开还是下载
的确enctype="multipart/form-data"拼错了...但问题不在这里,如果图片所在路径没有中文的话,用原来拼错的去传无论传几次都可以成功的,但改回正确的反而不能传....读取成功一下之后又是老问题
问题解决了,第一个把enctype去掉,读取没中文的路径就可以了,第二个是漏了image/后面的图片格式... 展开
<?php
include 'config.php';
echo 'aa<pre>';
print_r($_POST['pic']);
echo'</pre>';
if($fp=@fopen($_POST['pic'],"r")){
echo '<br>open successfully<br>';
if($picdata=@fread($fp,filesize($_POST['pic']))){
echo 'yes<br>';
$picdata=addslashes($picdata);
$_POST['pic']=array();
}
$qu="insert into images(picdata)values('$picdata')";
mysql_query($qu) or mysql_error();
fclose($fp);
}
?>
<form action="test.php"method="post"enctype="myltypart/form-data">
<input type="file" name="pic"><br>
<input type="submit" value="sub">
</form>
第二个读取显示图片<?php
include 'config.php';
$qu="select picdata from images ";
$res=@mysql_query($qu)or mysql_error();
$num=@mysql_num_rows($res);
if($num==0){
exit;
}
$row=@mysql_fetch_assoc($res);
header("Content-type:image/");
echo $row['picdata'];
?>
两个程序都成功运行过,没再修改但之后一直不能再运行,第一个fread()读不了文件,第二个不能运行,浏览器提示文件打开还是下载
的确enctype="multipart/form-data"拼错了...但问题不在这里,如果图片所在路径没有中文的话,用原来拼错的去传无论传几次都可以成功的,但改回正确的反而不能传....读取成功一下之后又是老问题
问题解决了,第一个把enctype去掉,读取没中文的路径就可以了,第二个是漏了image/后面的图片格式... 展开
5个回答
展开全部
数据库的优化涉及三个方面,一是你的程序怎么写的,二是数据库结构怎么设计,三是你的数据库情况怎样(数量、差异规则)。
一般说来,如果你是数据较多,必须建立合理的索引,而且查询语句要按照索引来查询。
而从数据库里面获取图片并显示的基本方式,我想只有一种模式,只要你能显示就不存在错误。当然你可以贴出代码大家看看。
补充:
恐怕你上面的语句是简化了的,而且把关键部分简化掉了,完全相当于没有贴。你下面这个语句:
$result=mysql_query("select * from image",$conn);
里面应该有一个类似where id=$id这样的条件,然后把id字段设置为主键,速度可以提高数十倍,除非你表里面只有一条记录。
一般说来,如果你是数据较多,必须建立合理的索引,而且查询语句要按照索引来查询。
而从数据库里面获取图片并显示的基本方式,我想只有一种模式,只要你能显示就不存在错误。当然你可以贴出代码大家看看。
补充:
恐怕你上面的语句是简化了的,而且把关键部分简化掉了,完全相当于没有贴。你下面这个语句:
$result=mysql_query("select * from image",$conn);
里面应该有一个类似where id=$id这样的条件,然后把id字段设置为主键,速度可以提高数十倍,除非你表里面只有一条记录。
展开全部
3楼说的没错,现在没人把图片直接存放到数据库中,直接讲图片上传的服务器目录中,在数据库汇总只保存图片路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把图片存到文件夹啊,别存在数据库上;数据库之存文件路径跟文件名。
这么大的图片信息用sql 存取都很累。
这么大的图片信息用sql 存取都很累。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
存储路径呀,乱七八糟的东西存数据库里面巨慢;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
enctype="multipart/form-data"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询