4年互联网基础行业运营经验,提供西安电信服务器托管,西安电信服务器租用,陕西电信服务器托管,陕西电信服务器租用,上海双线服务器托管,上海双线服务器租用,西安电信虚拟主机,西安电信服务器合租,上海双线服务器合租,上海双线虚拟主机服务! 免费试用3天,可免费预装主流CMS及BBS系统!
销售热线:029-87727737
专题栏目:网站ICP备案讲解
淘宝网店  Hello,欢迎进入我们的淘宝店铺
淘宝网店http://taobao.safeidc.net
虚拟主机通道  
4美国空间(100M) 4美国空间(200M)
4美国空间(300M) 4美国空间(500M)
4100M 虚拟主机Ⅰ 4200M 虚拟主机Ⅱ
4300M 虚拟主机Ⅲ 4400M 虚拟主机Ⅳ
服务器合租通道
41G 服务器合租Ⅰ 42G 服务器合租Ⅱ
43G 服务器合租Ⅲ 44G 服务器合租Ⅳ
45G 服务器合租Ⅴ 46G 服务器合租Ⅵ
47G 服务器合租I 410G 服务器合租II
420G 服务器合租III
设计开发  
4 网站设计 - 企业/门户/个人
4 程序开发 - ASP/PHP/JSP/.NET
4 界面设计 - 软件界面/手机界面
4 图标设计 - 软件图标/网站图标/表情
4 标志设计 - LOGO/VI/名片/包装盒
4 动画设计 - BANNER/短片/网站
服务器技术 > 浅谈怎么才能在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:
}
?>

如果你执行了这个程序,你将会看见一个简单的Html表单,单击“浏览”选择一个文件,然后单击提交。

当文件上传至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

关于我们   |   联系我们   |   诚聘英才   |   付款方式   |   友情伙伴   |   程序下载   |   资讯中心   |   网站地图   |   ♀E网科技手机站
7X24小时服务 值班电话:15929901730  销售热线:029-87727737 85029417  投诉/疑问:root@safeidc.net
空间业务TM 客服部TM:957051052  客服部TM:957815920  客服部TM:812380390  数据中心TM 客服部TM:958165499  客服部TM:957616182
增值业务TM 客服部TM:278550633  客户备案TM 客服部TM:674526652  技术支持TM 客服部TM:347904550
Copyright © 2005-2009 SafeIDC.Net 版权所有 《增值电信业务经营许可证》 陕ICP备08001107号