下载Word文档的四种方法

    技术2025-09-14  104

    http://www.cnblogs.com/zjyuan/archive/2011/02/14/1954009.html

     

    //第一种方法:Response.ClearContent();Response.ClearHeaders();Response.ContentType = "Application/msword";string s = Server.MapPath("文件名.doc");Response.WriteFile("文件名.doc");Response.Write(s);Response.Flush();Response.Close();

    //第二种方法:Response.ClearContent();Response.ClearHeaders();Response.ContentType = "Application/msword";string strFilePath = "";strFilePath = Server.MapPath("文件名.doc");FileStream fs = new FileStream(strFilePath, FileMode.OpenOrCreate, FileAccess.Read);Response.WriteFile(strFilePath, 0, fs.Length);fs.Close();

    //第三种方法:string path = Server.MapPath("文件名.doc");FileInfo file = new FileInfo(path);FileStream myfileStream = new FileStream(path, FileMode.Open, FileAccess.Read);byte[] filedata = new Byte[file.Length];myfileStream.Read(filedata, 0, (int)(file.Length));myfileStream.Close();Response.Clear();Response.ContentType = "application/msword";Response.AddHeader("Content- Disposition", "attachment;filename=文件名.doc");Response.Flush();Response.BinaryWrite(filedata);Response.End();

    //第四种方法:解决下载doc文件时自动在页面打开的问题:

    context.Response.ContentType = "application/x-octet-stream";string filePath = context.Server.MapPath(context.Request.QueryString["fileName"].ToString());string fileName = HttpUtility.UrlEncode(System.IO.Path.GetFileName(filePath).ToString(), System.Text.Encoding.UTF8);context.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);context.Response.WriteFile(filePath);context.Response.Flush();

    调用:

    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#string.Format("X.ashx?fileName={0}",getFilePath(Eval("fileUrl").ToString()))%>'> <%#Eval("fileName")%></asp:HyperLink>

    最新回复(0)