给你一个思路,你可以让用户直接上传附件,你在服务器确定一个文件夹做目录让用户上传的文件都复制到这个文件里面。 这样就不管用户上传的什么文件, 都可以提供下载和浏览!
保存:
HttpFileCollection files = HttpContext.Current.Request.Files;
HttpPostedFile postedFile = null;
if (fileName != "")
{
fileExtension = System.IO.Path.GetExtension(fileName);
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("../Attach Files/[这里是你要保存的文件目录名,要确定好路径]") + newFileName);
}
这里是打开或下载: 我这里有连接数据库改了名字,你可以自己看试着修改!
SystemDbOperator sysDbOperator = new SystemDbOperator();
DataSet tmpDS = sysDbOperator.Query(strSQL);
if (!Util.IsNull(tmpDS)) {
string strFilePath = HttpContext.Current.Request.MapPath("Attach Files/") + fileName;//路径根据实际情况而定
if (!File.Exists(strFilePath)) {
strScript = "";
ClientScript.RegisterStartupScript(this.GetType(), "提示", strScript);
return;
}
//打开文件流读取文件DownLoadPage.aspx?FileName = " + fileName;
FileStream fs = new FileStream(strFilePath, FileMode.Open);
string OldFileName = tmpDS.Tables[0].Rows[0]["FileName"].ToString();
//将文件信息以字节流方式保存到数组
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
//向页面输出字节流 实现下载效果
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(OldFileName));
Response.BinaryWrite(bytes);
Response.End();
.NET无法操作WORD中的东东.(提供你一个也许可行的思路:是不是可以把WORD中的东东变成一个二进制文件,也后利用文件读取代码操作呢?)
这个肯定要读取出来的,这个和图片存入数据库再读出来不是一样的么!