以下是我把文件存入数据库和从数据库中去压缩文件的代码。
可文件取出后,用rar打开时提示时却提示不可预料的文件末端。
请问是什么原因?存入库的代码:
FileStream rarFS = File.OpenRead(directoryAndFile);
Stream filedatastream = (Stream)rarFS;
int filedatalen = directoryAndFile.Length;
byte[] filedata = new byte[filedatalen];
int n = filedatastream.Read(filedata,0,filedatalen);
SqlConnection Con = new SqlConnection("Data Source = (local);Integrated Security = true;Initial Catalog = testDB");
String SqlCmd = "INSERT INTO testTable (fileData) VALUES (@file)";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
//CmdObj.Parameters.Add("@title",directory);
//CmdObj.Parameters.Add("@type",".rar");
CmdObj.Parameters.Add("@file",SqlDbType.Binary, (int)rarFS.Length).Value = filedata; Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close();
filedatastream.Close();取文件的代码:
SqlConnection conn = new SqlConnection("Data Source = (local);Integrated Security = true;Initial Catalog = testDB");
string sql="SELECT fileData FROM testTable" ;
SqlCommand command = new SqlCommand(sql, conn);
conn.Open();
SqlDataReader dr = command.ExecuteReader();
if(dr.Read())
{
FileInfo fi = new FileInfo("C:\\adpcm2.rar");
FileStream myStream=fi.Open(FileMode.Create);
byte[] mydata=((byte[])dr["fileData"]);
foreach(byte a in mydata)
{
myStream.WriteByte(a);
} myStream.Close();
dr.Close ();
conn.Close();
}请给与指点。谢谢!!
可文件取出后,用rar打开时提示时却提示不可预料的文件末端。
请问是什么原因?存入库的代码:
FileStream rarFS = File.OpenRead(directoryAndFile);
Stream filedatastream = (Stream)rarFS;
int filedatalen = directoryAndFile.Length;
byte[] filedata = new byte[filedatalen];
int n = filedatastream.Read(filedata,0,filedatalen);
SqlConnection Con = new SqlConnection("Data Source = (local);Integrated Security = true;Initial Catalog = testDB");
String SqlCmd = "INSERT INTO testTable (fileData) VALUES (@file)";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
//CmdObj.Parameters.Add("@title",directory);
//CmdObj.Parameters.Add("@type",".rar");
CmdObj.Parameters.Add("@file",SqlDbType.Binary, (int)rarFS.Length).Value = filedata; Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close();
filedatastream.Close();取文件的代码:
SqlConnection conn = new SqlConnection("Data Source = (local);Integrated Security = true;Initial Catalog = testDB");
string sql="SELECT fileData FROM testTable" ;
SqlCommand command = new SqlCommand(sql, conn);
conn.Open();
SqlDataReader dr = command.ExecuteReader();
if(dr.Read())
{
FileInfo fi = new FileInfo("C:\\adpcm2.rar");
FileStream myStream=fi.Open(FileMode.Create);
byte[] mydata=((byte[])dr["fileData"]);
foreach(byte a in mydata)
{
myStream.WriteByte(a);
} myStream.Close();
dr.Close ();
conn.Close();
}请给与指点。谢谢!!
imgData=dr["fileData"] as byte[];
FileStream fs = new FileStream("C:\\adpcm2.rar",FileMode.Create);
fs.Write(imgData,0,imgData.Length);
fs.Close();
把写的语句改成这样行不行
我在我的程序里这么写的可以通过