免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1000 | 回复: 0
打印 上一主题 下一主题

用PHP和MySQL保存和输出图片 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-19 17:01 |只看该作者 |倒序浏览



设置数据库
    通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之处就在于两者所需要保存的数据量不同。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。
   
   
   
    这样,就可以成功的把图片保存到数据库中。如果在将图片插入MySQL的过程中出现问题,可以检查一下MySQL数据库所允许的最大数据包的大小。如果设置值过小的话,会在数据库的错误日志中找到相应的记录。
   
    下面,简单说明一下上述脚本程序。首先,我们通过“If($Picture != "none")”检查是否有文件被上传。然后,使用addslashes()函数避免出现数据格式错误。最后,连接MySQL,选择数据库并插入图片。
   
  显示图片
    在知道了如何将图片存入数据库之后,就需要考虑怎样才能从数据库中取出图片并在HTML页面中显示出来。这个过程要稍微复杂一些,下面介绍实现过程。
   
  因为PHP显示图片需要发送相应的标头,所以就会面临这样一个问题,那就是一次只能显示一副图片,因为无法在发出标头之后再发送其它的标头。
   
  为了有效的解决这一问题,编写两个文件。其中,第一个文件作为HTML页面的模板,定位图片的显示位置。第二个文件则被用来从数据库中实际输出文件流,作为标签的SRC属性。
   
  第一个文件的简单形式可以如下:
   
    PicNum\">"; } ?>   
   
    当HTML页面被浏览时,每显示一副图片就会调用一次Second.php3文件。当第二个文件被调用时会传入相应的Picture ID,可以借此从数据库中取回对应的图片并显示。
   
  Second.php3文件如下:
   
  Image; ?>

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5923/showart_142741.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP