首页
|
Vista
|
WinXP
|
Java
|
程序开发
|
SEO优化
|
网络应用
|
硬件资讯
|
计算机等级认证
|
网站建设
|
问题帮助
|
图形图象
|
立珊英语
微软认证
|
思科认证
|
Java认证
|
Linux认证
|
Oracle认证
|
程序员
|
电子商务
|
网络工程
|
信息系统
|
软件设计
|
信息技术
|
网络管理
程序开发
编程语言
|
数据库开发
|
Web开发
|
移动开发
|
软件工程
|
电子商务
您现在的位置:
立珊计算机专业网
>
程序开发
>
数据库开发
>
Mysql
>> 文章内容
G
o
o
g
l
e
怎样在Mysql中直接储存图片
2007-12-08 04:36:13 来源:
推荐给好友
收藏本页
保存本文
如果你想把二进制的数据,比如说图片文件和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
转贴于:立珊网络计算机专业网站
相关关键字:
图片
储存
直接
怎样
文件
数据库
一个
程序
id
//
binary_data
上一篇:
用你想不到的MySQL运算符获得更多数据比较功能
下一篇:
帮助你开发基于MySQL数据库的论坛设计
【
设为主页
】【
加入收藏
】【
打印本文
】【
回到顶部
】【
关闭此页
】
点击查看
已有
0
位对此新闻感兴趣的网友发表了看法
我的通行证:
密码:
验证码:
匿名
注册通行证
相关文章
·
帮助你开发基于MySQL数据库的论坛设计
·
MySQL数据库配置技巧
·
如何利用Debugview方式来调试MySQL UDF
·
Linux系统下使用Coredump时应注意事项
·
讲解MySQL服务器安装之后如何调节性能
·
MySQL服务器内部安全数据目录如何访问
·
完全优化MySQL数据库性能的八大巧方法
·
MySQL系统服务安装与卸载精彩问题汇总
·
MySQL数据库中SELECT语句快速精细掌握
·
如何利用MySQL加密函数保护Web网站敏感数据
推荐文章
·
MySQL权威指南读书笔记
·
PHP之Smarty指导入门
·
MySQL数据库备份
·
MySQL数据库中SELECT语句快速精细掌握
·
MySQL 5.0 数据库的新特性的存储过程
·
用PHP实现验证码功能
·
数据库新手入门之MySQL中如何定义外键
·
MySQL中多表操作和批处理详细介绍
·
使用批处理对MySQL进行数据批量操作
·
MySQL系统服务安装与卸载精彩问题汇总
Java编程技巧
JSP Servlet JSF异常框架设计
JAVA异常处理方式的区别和分析
java中判断字符串是否数字的两种方法
判断数字、整数的方法 isNumeric()、isIn
Spring破冰之旅 始于足下
为Java程序中添加播放MIDI音乐功能
彻底明白 Java 语言中的IO系统
Java 6.0 操作脚本语言基础
使用Java操作Windows系统注册表
动态调用动态语言之Java脚本API
Spring集成XFire开发WebService
Java对象的序列化和反序列化实践
Java开发中的事件驱动模型实例详解
数据库开发
SQL Server与Oracle并行访问的本质区别
SQL Server2005的XML数据类型
SQL Server2005 SQLCLR代码安全性
SQL Server 查询分析器快捷键
Sql2005如何用dtexec运行ssis(DTS)包
生成100万不重复的8位编号
SELECT 赋值与ORDER BY冲突的问题
将SQL Server中的表变成txt文件
一些异常精妙的"SQL"语句
Microsoft数据平台开发与SQL Server 2008
Web网页系统开发
Javascript IDE Apatana
用json和script标签解决ajax的跨域问题
Javascript技术优化计划
escape、encodeURI、encodeURIComponent
PHP常见图形操作 玩转图像函数库
[原创]用Javascript获取系统日期
PHP中for循环语句的变型
用PHPdig打造属于你自己的Google
使用php作linux自动执行脚本
在PHP中实现进程间通讯
PHP下对缓冲区的控制
在 PHP 中用描点法“绘制”中文
PHP中路径问题的解决途径
使用数据库保存session的方法
PHP和MySQL开发的8个技巧
Delphi程序设计
一个需求分析说明书的例子
软件需求分析方法总结
Java新手上路Flash教程中文版
基于UML的短消息计费系统的分析
网站项目系统分析及软件建模
需求分析
如何进行系统分析
软件工程领域中项目管理实施体会
软件工程之需求分析
Linux操作平台
使用Tftp从网络引导Debian进行系统安装
Shell脚本显示当前网络连接与对应物理地
Linux系统下对文件进行分割与合并的技巧
Linux服务器傻瓜式安装完全接触(下)
Linux服务器傻瓜式安装完全手册
在你的Ubuntu Linux桌面上嵌入终端窗口
Linux操作系统实用技巧精彩汇集
Linux操作系统下虚拟光驱(iso)的挂载
使用Unix命令行模式高效地进行文本编辑
基于SCIM输入法自己配置一个“万能五笔”
如何使Linux系统上的程序开机后自动运行
在Ubuntu系统下安装*.bin程序
关于站点
-
广告服务
-
联系我们
-
版权隐私
-
免责声明
-
网站地图
-
意见反馈
立珊计算机IT网 版权所有. . 对本站有任何建议、意见或投诉,可以联系我们.
Copyright©2007 Www.Lis123.Com All Rights Reserved.