通过一天的搜索终于将word存入并显示,希望以后有人遇到这种问题有个参考
添加一个上传文件的控件(input type=file id=MyFile runat=server)
System.Web.HttpPostedFile myFile=MyFile.PostedFile;
if(myFile.ContentLength!=0)
{ //读取文件信息
string tmpFileName=myFile.FileName;
string myFileName=tmpFileName.Substring(tmpFileName.LastIndexOf("."));
string myFileMimeType=myFile.ContentType;
}
// 读取到数组里面
System.IO.Stream mystream=myFile.InputStream;
byte[] Buffer=new byte[myFile.ContentLength];
mystream.Read(Buffer,0,myFile.ContentLength);
// 写入数据库
string path=Request.PhysicalApplicationPath+"database//msword.mdb";
OleDbConnection conn=new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="+path);
OleDbDataAdapter adp=new OleDbDataAdapter("select * from ImportWord",conn);
OleDbCommandBuilder ocb= new OleDbCommandBuilder(adp);
DataTable dt=new DataTable();
adp.Fill(dt);
DataRow dr=dt.NewRow();
//BinaryReader thisReader=new BinaryReader(mystream);
dr["msword"]=Buffer;
dt.Rows.Add(dr);
adp.Update(dt);
在网页中显示
string path=Request.PhysicalApplicationPath+"database//msword.mdb";
OleDbConnection conn=new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="+path);
OleDbDataAdapter adp=new OleDbDataAdapter("select msword from ImportWord where uid=4",conn);
DataTable dt=new DataTable();
adp.Fill(dt);
Byte[] buffer=(byte[])dt.Rows[0][0];
Response.Clear();
Response.ContentType="application/msword"; //一定要写,否则是乱码
Response.BinaryWrite(buffer);
Response.End();