當前位置:首頁 » 數據倉庫 » 文件二進制存資料庫
擴展閱讀
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插入語句就行了的,。