图片保存到mysql数据库

上传人:m**** 文档编号:473031757 上传时间:2023-07-12 格式:DOC 页数:10 大小:20.01KB
返回 下载 相关 举报
图片保存到mysql数据库_第1页
第1页 / 共10页
图片保存到mysql数据库_第2页
第2页 / 共10页
图片保存到mysql数据库_第3页
第3页 / 共10页
图片保存到mysql数据库_第4页
第4页 / 共10页
图片保存到mysql数据库_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《图片保存到mysql数据库》由会员分享,可在线阅读,更多相关《图片保存到mysql数据库(10页珍藏版)》请在金锄头文库上搜索。

1、在我们设计和制作网站的过程中,有时把图片保存到数据库中要比存成文件的形式更加方便。PHP和MySQL这对黄金组合可以很容易的实现上述功能。在本文中,我们将会向读者介绍如何把图片保存到MySQL数据库中以及如何将数据库中的图片显示出来。设置数据库 我们通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之处就在于两者所需要保存的数据量不同。MySQL数据库使用专门的字段来保存大容量的数据,数据类型为BLOB。MySQL数据库为BLOB做出的定义如下:BLOB数据类型是一种大型的二进制对象,可以保存可变数量的数据。BLOB具有四种类型,分别是TINYBLOB,BLOB, MED

2、IUMBLOB 和LONGBLOB,区别在于各自所能够保存的最大数据长度不同。在介绍了所需要使用的数据类型之后,我们可以使用以下语句创建保存图象的数据表。CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB );编写上传脚本 关于如何实现文件的上传,我们在这里就不再介绍了。现在,我们主要来看一下如何接收上传文件并将其存入到MySQL数据库中。具体的脚本代码如下,其中我们假定文件上传域的名称为Picture。这样,我们就可以成功的把图片保存到数据库中。如果在将图片插入MySQL的过程中出现

3、问题,可以检查一下MySQL数据库所允许的最大数据包的大小。如果设置值过小的话,我们会在数据库的错误日志中找到相应的记录。下面,我们简单说明一下上述脚本程序。首先,我们通过“If($Picture != none)”检查是否有文件被上传。然后,使用addslashes()函数避免出现数据格式错误。最后,连接MySQL,选择数据库并插入图片。显示图片 在知道了如何将图片存入数据库之后,我们就需要考虑怎样才能从数据库中取出图片并在HTML页面中显示出来。这个过程要稍微复杂一些,下面我们就来介绍一下实现过程。因为PHP显示图片需要发送相应的标头,所以我们就会面临这样一个问题,那就是一次只能显示一副图

4、片,因为我们无法在发出标头之后再发送其它的标头。为了有效的解决这一问题,我们编写了两个文件。其中,第一个文件作为HTML页面的模板,定位图片的显示位置。第二个文件则被用来从数据库中实际输出文件流,作为标签的SRC属性。第一个文件的简单形式可以如下: ? 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 I

5、mages) or die(Cant Perform Query); While($row=mysql_fetch_object($result) echo PicNum; ? 当HTML页面被浏览时,每显示一副图片就会调用一次Second.php3文件。当第二个文件被调用时会传入相应的Picture ID,我们可以借此从数据库中取回对应的图片并显示。Second.php3文件如下:Image; ?到此,我们就介绍完了使用PHP和MySQL保存和显示图片的全过程。文中所举得都是一些最简单的实例,读者可以根据自己的实际需要加入其它一些功能,使整个程序更加完善。、+如果你想把二进制的数据,比如说图

6、片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。 一、本文概述 本文的主要内容如下: 在MySQL中建立一个新的数据库 一个怎样储存文件的例子程序 一个怎样访问文件的例子程序 二、在MySQL中建立一个新的database 首先,你必须在你的MySQL中建立一个新的数据库,我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构,为了建立数据库,你必须做下列步骤: 1.进入MySQL控制器 2.输入命令createdatabasebinary_data; 3.输入命令usebin

7、ary_data; 输入如下命令: CREATETABLEbinary_data(idINT(4)NOTNULLAUTO_INCREMENTPRIMARYKEY,descriptionCHAR(50),bin_dataLONGBLOB,filenameCHAR(50),filesizeCHAR(50),filetypeCHAR(50);(不能断行) 如果没有意外,数据库和表应该建立好了。 三、一个怎样储存文件的例子程序 用这个例子你可以通过Html表单将文件传输到数据库中。 store.php3 /store.php3-byFlorianDittmer ? /如果提交了表单,代码将被执行: i

8、f($submit) /连接到数据库 /(你可能需要调整主机名,用户名和密码) MYSQL_CONNECT(localhost,root,password); MySQL_select_db(binary_data); $data=addslashes(fread(fopen($form_data,r),filesize($form_data); $result=MYSQL_QUERY(INSERTINTObinary_data(description,bin_data,filename,filesize,filetype)VALUES($form_description,$data,$for

9、m_data_name,$form_data_size,$form_data_type); $id=MySQL_insert_id(); printThisfilehasthefollowingDatabaseID:$id; MYSQL_CLOSE(); else /否则显示储存新数据的表单 ? MySQL_select_db(binary_data); $query=selectbin_data,filetypefrombinary_datawhereid=$id; $result=MYSQL_QUERY($query); $data=MYSQL_RESULT($result,0,bin_d

10、ata); $type=MYSQL_RESULT($result,0,filetype); Header(Content-type:$type); echo$data; ; ? 程序必须知道要访问那个文件,你必须将ID作为一个参数。 例如:一个文件在数据库中的ID为2.你可以这样调用它:getdata.php3?id=2 如果你将图片储存在数据库里,你可以向调用图片一样调用它。 Example:一个图片文件在数据库中的ID为3.你可以这样调用它: 五、怎样储存大于1MB的文件 如果你想储存大于1MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改。 下面几条也许可以帮助你储存小于2

11、4MB的文件: 1)修改store.php3,将MAX_FILE_SIZE的值改成24000000。 2)修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000 3)去掉MYSQL的数据包大小限制,在一般情况下MYSQL小于1MB的数据包。 4)你必须用以下参数重启你的MYSQL:/usr/local/bin/safe_MySQLd-Okey_buffer=16M-Otable_cache=128-Osort_buffer=4M-Orecord_buffer=1M-Omax_allowed_packet=24M 5)如果仍然出错:可能是超时错误,如果你通过一个很慢的连接来储存一个很大的文件,PHP缺省的时间限制为30秒。你可以将max_execution_time(在php.ini中)的值改为-1。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号