重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
站在用户的角度思考问题,与客户深入沟通,找到孝感网站设计与孝感网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟空间、企业邮箱。业务覆盖孝感地区。
MySQL的四种BLOB类型
TinyBlob: 最大 255字节
Blob: 最大 65K
MediumBlob:最大 16M
LongBlob: 最大 4G
注意:如果你存储的文件过大,数据库的性能会下降很多。
2、PHP操作BLOB案例
?php
mysql_connect( "localhost", "root", "password"); //连接数据库
mysql_select_db( "database"); //选定数据库
//数据插入:
$CONTENT="测试内容"; //$CONTENT为新闻内容
$COMPRESS_CONTENT = bin2hex(gzcompress($CONTENT));
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//数据插入到数据库news表中
//展示:
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
$COMPRESS_CONTENT=@gzuncompress($result["COMPRESS_CONTENT"]);
echo $COMPRESS_CONTENT;
?
[2]存储图片
?php
mysql_connect( "localhost", "root", "password"); //连接数据库
mysql_select_db( "database"); //选定数据库
//存储:
$filename="" //这里填入图片路径
$COMPRESS_CONTENT = addslashes(fread(fopen($filename, "r"), filesize($filename)));//打开文件并规范化数据存入变量$data中
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//数据插入到数据库test表中
//展示:
ob_end_clean();
Header( "Content-type: image/gif");
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
echo $result["COMPRESS_CONTENT"];
?
你把他理解成char或者varchar一样就可以了啊, 这个只是数据库的存储,其实我一般都是在后盾人平台解决这个问题,因为我会在里面查看相关的视频.
blob是一个对象容器,只能由js自身读取并作为二进制数据流上传至服务器。
这种你得修改js代码建立一个blob上传至后台,然后后台再用脚本接收并储存为文件。
// 连接字符串 data source=d:\test.db3;password=1234
SQLiteConnectionStringBuilder connStr = new SQLiteConnectionStringBuilder();
connStr.DataSource = @"d:\test.db3";
connStr.Password = "1234";
conn = new SQLiteConnection(connStr.ToString());
conn.Open();
// 插入数据
string SQL = "INSERT INTO test(k) VALUES(:k)";
SQLiteCommand cmd = conn.CreateCommand();
cmd.CommandText = SQL;
// 取图标,准备插入到数据库BLOB字段
FileStream picStream = File.OpenRead(@"d:\1.bmp");
byte[] bArray = new byte[picStream.Length];
picStream.Read(bArray, 0, bArray.Length);
picStream.Close();
cmd.Parameters.Add("k", DbType.Binary).Value = bArray; // BLOB
cmd.ExecuteNonQuery();
//取出数据
cmd.CommandText = "SELECT k FROM test";
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MemoryStream streamImage = new MemoryStream(reader["k"] as byte[]);
pictureBox1.Image = Image.FromStream(streamImage);
streamImage.Close(); // 关闭流
}
reader.close();
conn.close();
这是一个文件 包括完整的路径以及文件名称如果存在就打开这个文件进行读取 读取出来的东西 保存到数据库中
forName支持数组类型,loadClass不支持数组 一般情况下,这两个方法效果一样,都能装载Class。但如果程序依赖于Class是否被初始化,就必须用Class.forName(name)了。 例如,在JDBC编程中,常看到这样的用法,Class.forName("com.mysql.jdbc.Driver")