北大青鸟首页添加收藏网站地图
网站首页 中心简介 课程详解 新闻动态 师资团队 就业中心 学员天地 招生问答 在线报名 技术讲座 证书查询
 2011年招生简章 |  高中生专区 | 白领特招班 | 大学生专区 | 学士后 | 充电\转行 | 电脑实用技术 | 报名须知 学员专访
学员天地
  联系我们
课程老师
张玲老师
周老师
  开班信息

开班时间  班级类型      状态
12月31日 网站开发班   限6座
12月28日 转行充电班   限7座
12月25日 在职充电班   限5座
12月20日 .net开发班   限3座
12月16日 android开发   限4座
12月09日 网络营销班   限2座
12月05日 软件开发    已满

  免费讲座

时间: 周三、周六、周日
地点: 北大青鸟航天桥校区
内容: 黑客攻防、网络安全、软件开发、学士
       后 
       择业 就业 创业
主讲: IT资深专家
电话: 010-51659300 / 88414120

点击查看详情>>
  热门专题
 
 
  热点新闻
·调查显示近四成大学毕业生6个月内离职
·专业技能培训成了许多学生走向社会、实现自
·好专业不一定好就业
·北大青鸟朴实男成为求职典范
·2011年中国大学生最佳雇主榜发布 国企
·高考落榜生该怎么办?学好技术是关键
·北大青鸟航天桥学校专家解读:高考后择校志
·高考填志愿是选择学校重要还是选择专业重要
·关注高考后考生心理,北大青鸟为高考不理想
·高考志愿填报:填的不是专业,是就业

  您的位置:北大青鸟首页 -> 学员天地 -> 教学文章 -> Computer

教你如何在MySQL数据库中直接储存图片
如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。

  本文概述:

  在mysql中建立一个新的数据库

  一个怎样储存文件的例子程序

  一个怎样访问文件的例子程序

  在mysql中建立一个新的database

  首先,你必须在你的mysql中建立一个新的数据库,我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构,为了建立数据库,你必须做下列步骤:


以下是引用片段:
进入MySql控制器
输入命令"create database binary_data;"
输入命令"use binary_data;"
输入命令"CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));" (不能断行)

  如果没有意外,数据库和表应该建立好了。

 

  一个怎样储存文件的例子程序 用这个例子你可以通过Html表单将文件传输到数据库中。.

 

  store.php3 以下为引用的内容:

以下是引用片段:
 <?php

// store.php3 - by Florian Dittmer <dittmer@gmx.net>
?>

<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>

<?php
// 如果提交了表单,代码将被执行:

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( "INSERT INTO binary_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 "<p>This file has the following Database ID: <b>$id</b>";

MYSQL_CLOSE();

} else {

// 否则显示储存新数据的表单
?>

<form method="post" action=" <?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
File Description:<br>
<input type="text" name="form_description" size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>File to upload/store in database:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>

<?php

}

?>

</BODY>
</HTML>

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

 

  当文件上传至web服务器之后,程序将会告诉你刚刚上传的文件的ID,记住这个ID,待会要用的。

  一个怎样访问文件的例子程序

  你可以通过这个程序访问你刚才储存的文件

  以下为引用的内容:


以下是引用片段:
 <?php

// getdata.php3 - by Florian Dittmer <dittmer@gmx.net>
// 调用方法: getdata.php3?id=<id>

if($id) {

// 你可能需要调整主机名,用户名和密码:
@MYSQL_CONNECT( "localhost", "root", "password");

@mysql_select_db( "binary_data");

$query = "select bin_data,filetype from binary_data where id=$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. 你可以这样调用它:

以下是引用片段:
<img src="getdata.php3?id=3">

  怎样储存大于1MB的文件:

  如果你想储存大于1MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改,。

  下面几条也许可以帮助你储存小于24MB的文件:

  修改 store.php3 ,将 MAX_FILE_SIZE 的值改成 24000000。

  修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000

  去掉MYSQL的数据包大小限制,在一般情况下 MYSQL 小于1 MB的数据包.

  你必须用以下参数重启你的MYSQL

以下是引用片段:
/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M

返回顶部 | 招生简章 | 联系我们 | 乘车路线 | 招聘信息 | 网站地图 | 在线报名
版权所有2004-2009 金领园科技(北京)有限公司 京ICP备09038718号 京公网安备:110108006537号
海淀中心网址:http://www.bjbenet.com 电话:010-51659300 / 88414120
海淀地址:北京海淀区西三环北路甲105号科原大厦B座5层 (首都师范大学东门)