博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 导出Word报”无法打开Office open xml文件。因为文件内容有错误“ 解决方法
阅读量:5060 次
发布时间:2019-06-12

本文共 2153 字,大约阅读时间需要 7 分钟。

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

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

///         /// 下载文件      ///         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

你可能感兴趣的文章
01入门
查看>>
python正则表达式
查看>>
嵌套循环连接(nested loops join)原理
查看>>
shell统计特征数量
查看>>
复习文件操作
查看>>
C#Hashtable与Dictionary性能
查看>>
10个让你忘记 Flash 的 HTML5 应用演示
查看>>
8个Python面试必考的题目,小编也被坑过 ToT
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
centos 图形界面和命令行界面切换(转载)
查看>>
Maven启用代理访问
查看>>
Primary definition
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
发送请求时params和data的区别
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
如何增强你的SharePoint 团队网站首页
查看>>
FZU 1914 Funny Positive Sequence(线性算法)
查看>>