当前位置:首页 » 数据仓库 » 文件二进制存数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

文件二进制存数据库

发布时间: 2022-04-14 20:55:36

‘壹’ 文件转二进制流保存到数据库中是不是比较节省数据库空间

以二进制方式保存主要是考虑数据库字段存储大小的问题,及方便性,不见得节数据库空间。

‘贰’ 如何将txt,doc等文件以二进制形式保存在数据库中

private int WriteToDB(string strName, string strType, ref byte[] Buffer) { int nFileID = 0; // Create connection OleDbConnection dbConn = new OleDbConnection(GetConnectionString()); // Create Adapter OleDbDataAdapter dbAdapt = new OleDbDataAdapter("SELECT * FROM tblFile", dbConn); // We need this to get an ID back from the database dbAdapt.MissingSchemaAction = MissingSchemaAction.AddWithKey; // Create and initialize CommandBuilder OleDbCommandBuilder dbCB = new OleDbCommandBuilder(dbAdapt); // Open Connection dbConn.Open(); // New DataSet DataSet dbSet = new DataSet(); // Populate DataSet with data dbAdapt.Fill(dbSet, "tblFile"); // Get reference to our table DataTable dbTable = dbSet.Tables["tblFile"]; // Create new row DataRow dbRow = dbTable.NewRow(); // Store data in the row dbRow["FileName"] = strName; dbRow["FileSize"] = Buffer.Length; dbRow["ContentType"] = strType; dbRow["FileData"] = Buffer; // Add row back to table dbTable.Rows.Add(dbRow); // Update data source dbAdapt.Update(dbSet, "tblFile"); // Get newFileID if( !dbRow.IsNull("FileID") ) nFileID = (int)dbRow["FileID"]; // Close connection dbConn.Close(); // Return FileID return nFileID; } 写入库。 private void ShowTheFile(int FileID) { // Define sql select statement string SQL = "SELECT FileSize, FileData, ContentType FROM tblFile WHERE FileID = " + FileID.ToString(); // Create Connection object OleDbConnection dbConn = new OleDbConnection(GetConnectionString()); // Create Command Object OleDbCommand dbComm = new OleDbCommand(SQL, dbConn); // Open Connection dbConn.Open(); // Execute command and receive DataReader OleDbDataRea

‘叁’ 以二进制形式保存文件到数据库 有什么优点缺点呢请指教 数据库是mysql,文件类型是doc和txt

优点,不用单独管理文件了呗,文件数据都在数据库里呢。用户想访问文件的话,你就可以做一些权限检查什么的,通过才给它取数据。

缺点,数据库稍微有些压力呗~~~~数据库文件会变大~~~

‘肆’ 如何能看出文件是以二进制的形式存储到数据库中的

打开数据库记录,看看记录中的内容是不是跟你上传的内容是一致的.或把他再输出到一个文件再对比一下.
并非以二进制形式存储那记录中就只能是你看不懂的内容,而泛指那些非常用格式,如:媒体文件 可执行文件等其他数据文件. 如果你上传的是一个文本文件,那数据库记录中的字段内容也是一个文本文件.

‘伍’ 怎样word文档以二进制流的形式存入数据库

protectedvoidButton1_Click(objectsender,EventArgse)
{

//FileInfothefile=newFileInfo(@"D:立项依据.doc");
FileStreamfsDoc=File.OpenRead(@"D:立项依据.doc");

DateTimedtnow=DateTime.Now;
stringfilename=dtnow.ToString("yyyyMMdd")+".doc";

byte[]buffer=newbyte[fsDoc.Length];

fsDoc.Read(buffer,0,(int)fsDoc.Length);
conn.Open();
stringsqlCmd=@"InsertintoMyUploadTable(filename,filesize,filedata,ProjectID,IsAuditActivePage)
Values(@filename,@filesize,@filedata,@ProjectID,1)";
SqlCommandCmd=newSqlCommand(sqlCmd,conn);
Cmd.Parameters.Add("@filename",SqlDbType.VarChar).Value=filename;
Cmd.Parameters.Add("@filesize",SqlDbType.BigInt).Value=fsDoc.Length;
Cmd.Parameters.Add("@filedata",SqlDbType.Image).Value=buffer;
Cmd.Parameters.Add("@ProjectID",SqlDbType.Int).Value=2;
Cmd.ExecuteNonQuery();
fsDoc.Close();
conn.Close();


}

‘陆’ 如何将二进制文件存入Oracle数据库中

先把文件读取到内存,再以二进制格式保持到数据库中的大字段中(clob或clob)。
写大对象。

Java code

public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
OutputStream os = null;
FileInputStream fis = null;
int bs = 0;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oraDB","bigfou","---");
conn.setAutoCommit(false);
stat = conn.createStatement();
stat.executeUpdate("insert into t_video(id,video) values(1,empty_blob())");

rs = stat.executeQuery("select video from t_video where id = 1");
rs.next();
oracle.sql.BLOB blo = (oracle.sql.BLOB)rs.getBlob(1);
os = blo.getBinaryOutputStream();
bs = blo.getBufferSize();
fis = new FileInputStream("D:\\Temp\\MPlayer-CVS-20040808-K&K\\mplayer.exe");
byte[] buf = new byte[bs];
int length = 0;

while(true)
{
length = fis.read(buf);
if(length == -1) break;
os.write(buf,0,length);
}

os.close();
os = null;
fis.close();
fis = null;
conn.commit();
conn.setAutoCommit(true);
conn.close();
} catch(Exception ex) {
ex.printStackTrace();
}
}

读大对象

Java code

InputStream is = null;
FileOutputStream fos = null;
byte[] buf = null;
int bs = 0;

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oraDB","bigfou","-");
conn.setAutoCommit(false);
stat = conn.createStatement();

rs = stat.executeQuery("select video from t_video where id = 1");
rs.next();
oracle.sql.BLOB blo = (oracle.sql.BLOB)rs.getBlob(1);
bs = blo.getBufferSize();
buf = new byte[bs];
int length = 0;
is = blo.getBinaryStream();
fos = new FileOutputStream("d:\\test.exe");

while(true) {
length = is.read(buf);
if(length == -1) break;
fos.write(buf,0,length);
}

fos.close();
fos = null;
is.close();
is = null;
conn.commit();
conn.setAutoCommit(true);
conn.close();
...

‘柒’ 如何把一个声音文件以二进制形式存入数据库(C语言)

数据库中存声音的字段应为BLOB或OLE类型,以流的形式存到数据库中或直接使用Graphic类型存储。

‘捌’ 如何实现将文件以二进制形式存放到数据库中

这个很简单的,这要把表单
这样设置一下,表单里面的数据就是以二进制的形式传到数据库的,至于怎么传到数据库,这个就不用说吧,一个SQL插入语句就行了的,。