• 郁闷了一天终于搞定这个问题了,出现这个问题时候文件其实内容还是可以打开的,就是出现以上的错误原因。经过最终分析确定了具体原因,是因为在Response下载文档时候,最后需要结束

System.Web.HttpContext.Current.Response.End();否则默认为不完整下载状态。反正我加上去后就不出现以上情况了。具体代码如下:

      /// <summary>
        /// 下载文件
      /// </summary>
        public void LoadPaperTemplate(string mStrFileName)
        {
            FileStream fs = null;
            BinaryReader br = null;
            BinaryWriter brnew = null;
            try
            {
                //给内容赋值   
                string path = System.Web.HttpContext.Current.Server.MapPath("~/Template");
                string mStrFileRoot = string.Format("{0}\\{1}", path, mStrFileName);
                if (File.Exists(mStrFileRoot))
                {
                    fs = new System.IO.FileStream(mStrFileRoot, System.IO.FileMode.Open);
                    br = new BinaryReader((Stream)fs);
                    byte[] bytes = br.ReadBytes((Int32)fs.Length);
                    brnew = new BinaryWriter(fs);
                    brnew.Write(bytes, 0, bytes.Length);
                    System.Web.HttpContext.Current.Response.Clear();
                    System.Web.HttpContext.Current.Response.Buffer = true;
                    System.Web.HttpContext.Current.Response.Charset = "GB2312";
                    System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(mStrFileRoot.Substring(mStrFileRoot.LastIndexOf('\\') + 1)));
                    System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                    System.Web.HttpContext.Current.Response.ContentType = "application/ms-word";
                    System.Web.HttpContext.Current.Response.BinaryWrite(bytes);
                    System.Web.HttpContext.Current.Response.Flush();
                    System.Web.HttpContext.Current.Response.End();
                }
            }
            catch (Exception)
            {
                //throw;
            }
            finally
            {
                br.Close();
                brnew.Close();
                fs.Close();
            }
        }

 

    

转载于:https://www.cnblogs.com/BeyondWJsel/archive/2012/05/10/2494418.html

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐