欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【浅谈怎么才能在MySQL中直接储存图片】,下面是详细的分享!
浅谈怎么才能在MySQL中直接储存图片
如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。
本文概述:
在mysql中建立一个新的数据库
一个怎样储存文件的例子程序
一个怎样访问文件的例子程序
在mysql中建立一个新的database
首先,你必须在你的mysql中建立一个新的数据库,我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构,为了建立数据库,你必须做下列步骤:
进入MySql控制器
输入命令"createdatabasebinary_data;"
输入命令"usebinary_data;"
输入命令"CREATETABLEbinary_data(idINT(4)NOTNULLAUTO_INCREMENTPRIMARYKEY,
descriptionCHAR(50),bin_dataLONGBLOB,filenameCHAR(50),filesizeCHAR(50),filetypeCHAR(50));"(不能断行)
如果没有意外,数据库和表应该建立好了。
一个怎样储存文件的例子程序用这个例子你可以通过Html表单将文件传输到数据库中。.
store.PHP3
| //store.php3-byFlorianDittmer ?> //如果提交了表单,代码将被执行: if($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’,’$form_data_name’,’$form_data_size’,’$form_data_type’)"); $id=mysql_insert_id(); print " ThisfilehasthefollowingDatabaseID:$id"; MYSQL_CLOSE(); }else{ //否则显示储存新数据的表单 ?> Filetoupload/storeindatabase: |
当文件上传至Web服务器之后,程序将会告诉你刚刚上传的文件的ID,记住这个ID,待会要用的。
一个怎样访问文件的例子程序
你可以通过这个程序访问你刚才储存的文件
| //getdata.PHP3-byFlorianDittmer //调用方法:getdata.php3?id= if($id){ //你可能需要调整主机名,用户名和密码: @MySQL_CONNECT("localhost","root","passWord"); @mysql_select_db("binary_data"); $query="selectbin_data,filetypefrombinary_datawhereid=$id"; $result=@MYSQL_QUERY($query); $data=@MYSQL_RESULT($result,0,"bin_data"); $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设置进行许多修改,。
下面几条也许可以帮助你储存小于24MB的文件:
修改store.php3,将MAX_FILE_SIZE的值改成24000000。
修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000
去掉MYSQL的数据包大小限制,在一般情况下MYSQL小于1MB的数据包.
你必须用以下参数重启你的MYSQL
/usr/local/bin/safe_mysqld-Okey_buffer=16M-Otable_cache=128-Osort_buffer=4M-Orecord_buffer=1M-Omax_allowed_packet=24M
以上所分享的是关于浅谈怎么才能在MySQL中直接储存图片,下面是编辑为你推荐的有价值的用户互动:
相关问题:请问在mysql中怎么存储图片呢?
答:你可以把该图片的url地址存进数据库 >>详细
相关问题:怎样写才能把上传到文件夹的图片数据存在数据库里...
答: >>详细
相关问题:用mysql存储图片,如何一次性循环输出显示? - PHP...
答:我还是第一次遇到用数据库来装图片的,一般不推荐使用这种方法,一般都是将上传的图片保存在硬盘上,用数据库来保存图片的路径,显示图片,只需读出图片的路径即可。 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
