向数据库存入blob字段值

string filepath = "D:\\pdf\\2008.pdf";
FileStream fs = null;
fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
Byte[] blob = new Byte[fs.Length];
fs.Read(blob, 0, blob.Length);
fs.Close();

string sql = "insert into TZ_TEST (ID,DATA) values (:ID,:DATA)";
OracleParameter[] parameters = {
new OracleParameter(":ID", OracleType.Number,4),
new OracleParameter(":DATA", OracleType.Blob)
};
parameters[0].Value = 0;
parameters[1].Value = blob;

DbHelperOra.ExecuteSql(sql, parameters);

读出blob字段的值发送到页面下载或者保存成文件

//ds为读出的dataset数据集,DATA字段为blob值

object blob = ds.Tables[0].Rows[0]["DATA"];
if (!DBNull.Value.Equals(blob))
{
file = (Byte[])blob;
}

//写出页面

 

if (file != null)
{
string fileName = "banbao.pdf";//客户端保存的文件名
//以字符流的形式下载文件
byte[] bytes = new byte[file.Length];

 

Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(file);
Response.Flush();
Response.End();
}

//或者保存成文件

string filepath2 = "D:\\pdf\\2008_" + DateTime.Now.ToString("HHmmss") + i + ".pdf";
FileStream fs2;
FileInfo fi = new System.IO.FileInfo(filepath2);
fs2 = fi.OpenWrite();
fs2.Write(file, 0, file .Length);
fs2.Close();

 

posted on 2012-06-26 17:47  Rain&Sun  阅读(429)  评论(0编辑  收藏  举报