通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>在线服务>>疑难解答>>正文 新版上线![旧版]
注:打开慢时请稍等

使用php和mysql保存和显示图片的全过程

http://www.iyit.net  日期:2006-10-6 15:33:57  来源:iyit.net收集  点击:
参加讨论
设置数据库    
  我们通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之处就在于两者所需要保存的数据量不同。mysql数据库使用专门的字段来保存大容量的数据,数据类型为blob。  
  mysql数据库为blob做出的定义如下:blob数据类型是一种大型的二进制对象,可以保存可变数量的数据。blob具有四种类型,分别是tinyblob,blob,  mediumblob  和longblob,区别在于各自所能够保存的最大数据长度不同。  
  在介绍了所需要使用的数据类型之后,我们可以使用以下语句创建保存图象的数据表。  
  create  table  images  (  picnum  int  not  null  auto_increment  primary  key,  image  blob  );    
编写上传脚本    
  关于如何实现文件的上传,我们在这里就不再介绍了,感兴趣的读者可以参见“网页陶吧”内的相关文章。现在,我们主要来看一下如何接收上传文件并将其存入到mysql数据库中。具体的脚本代码如下,其中我们假定文件上传域的名称为picture。  
<?    
if($picture  !=  "none")  {    
$psize  =  filesize($picture);    
$mysqlpicture  =  addslashes(fread(fopen($picture,  "r"),  $psize));    
mysql_connect($host,$username,$password)  or  die("unable  to  connect  to  sql  server");  
@mysql_select_db($db)  or  die("unable  to  select  database");    
mysql_query("insert  into  images  (image)  values  ($mysqlpicture)")  or  die("cant  perform  query");    
}else  {    
echo"you  did  not  upload  any  picture";    
}    
?>    
  这样,我们就可以成功的把图片保存到数据库中。如果在将图片插入mysql的过程中出现问题,可以检查一下mysql数据库所允许的最大数据包的大小。如果设置值过小的话,我们会在数据库的错误日志中找到相应的记录。  
  下面,我们简单说明一下上述脚本程序。首先,我们通过“if($picture  !=  "none")”检查是否有文件被上传。然后,使用addslashes()函数避免出现数据格式错误。最后,连接mysql,选择数据库并插入图片。  
显示图片    
  在知道了如何将图?  入数据库之后,我们就需要考虑怎样才能从数据库中取出图片并在html页面中显示出来。这个过程要稍微复杂一些,下面我们就来介绍一下实现过程。  
因为php显示图片需要发送相应的标头,所以我们就会面临这样一个问题,那就是一次只能显示一副图片,因为我们无法在发出标头之后再发送其它的标头。  
为了有效的解决这一问题,我们编写了两个文件。其中,第一个文件作为html页面的模板,定位图片的显示位置。第二个文件则被用来从数据库中实际输出文件流,作为<img>标签的src属性。  
第一个文件的简单形式可以如下:  
<html>  <body>    
<?    
mysql_connect($host,$username,$password)  or  die("unable  to  connect  to  sql  server");  
@mysql_select_db($db)  or  die("unable  to  select  database");  
$result=mysql_query("select  *  from  images")  or  die("cant  perform  query");    
while($row=mysql_fetch_object($result))  {  
echo  "<img  src=\"second.php3?  picnum=$row->picnum\">";    
}  ?>  
</body>  </html>    
  当html页面被浏览时,每显示一副图片就会调用一次second.php3文件。当第二个文件被调用时会传入相应的picture  id,我们可以借此从数据库中取回对应的图片并显示。  
second.php3文件如下:  
<?    
$result=mysql_query("select  *  from  images  where  picnum=$picnum")  or  die("cant  perform  query");    
$row=mysql_fetch_object($result);    
header(  "content-type:  image/gif");  
echo  $row->image;    
?>    
  到此,我们就介绍完了使用php和mysql保存和显示图片的全过程。文中所举得都是一些最简单的实例,读者可以根据自己的实际需要加入其它一些功能,使整个程序更加完善。

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:php将mysql中jpeg图片取出后如何直接缩小然后传给客户端,减轻网络传输负担?
下一篇:图片上传,文件名存入数据库代码
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
我在windows  xp上安装apache2.044+php apache+php,怎样打开session支持?? 在linux中怎么配置pdflib和php  高分!
怎么样同时解释.php和.php3的文件呀,急 php 4.1.0 及以后版本使用post变量的接 apache2-win32+php的成功安装方法
我只是想在本地机上学习php ,还要安装 装了php。运行时出现在以下提示 怎么删除mysql???
php在win2003上面怎样安装? php 在linux 下如何開啟ftp功能 如何屏蔽掉 phpinfo()
php.ini中文版 请问怎样降低php的警告等级? 一个打击了我学习php热情的问题:怎么样
php初学者的入门问题 运行php程序会出现乱码是怎么回事?zen 怎么样修改mysql安装后的root空密码?
如何让php拥有root的权限? 为什么php中的函数mail()不能发送邮件 成功地在linux/unix下安装apache+php+o
在win2k下如何安装apache、mysql、php? 请问高手:iis5.0+php4.0安装问题 php session变量在下一页不能读取值的问
最新更新 热点排行 推荐新闻
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
在linux中怎么配置pdflib和php  高分!
怎么样同时解释.php和.php3的文件呀,
php 4.1.0 及以后版本使用post变量的接
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
在linux中怎么配置pdflib和php  高分!
怎么样同时解释.php和.php3的文件呀,
php 4.1.0 及以后版本使用post变量的接
apache2-win32+php的成功安装方法
我只是想在本地机上学习php ,还要安装
装了php。运行时出现在以下提示
如何安装apache2.0
怎么删除mysql???
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
如何实现注册时的确认码功能
请帮忙解决,图随机上传,不限量,定位
有没有很好方法,获得在线登陆用户名单
qq密码被盗怎么办!我教你找回密码
如何控制我的电脑只允许登录我自己的q
qq2006 beta3隆重发布 实用功能一一奉
美国微软总部相中重庆15岁网络奇才(图
百度声明称遭受有史以来最大规模黑客攻
被删除系统文件恢复全攻略
使用身份验证来禁止内部用户上网 
国内首次发现带有感染文件特征盗号病毒
06年08月31日石家庄太和 内存报价
用css控制透明图片 
exeplorer.exe错误的问题的总结、解决
三分钟让你的系统变处女:acronis tru
让你的密码成为黑客的“耻辱”
比较sql server2005和oracle 10g r2
比较sql server2005和oracle 10g r2
sql server2005的xml数据类型之基础篇
sql server服务器的“偷梁换柱”
在win2003下mysql数据库每天自动备份
win2000 apache php mysql 安装及安全
mysql账户相关
快速安装windows操作系统独家秘籍
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息