大佬教程收集整理的这篇文章主要介绍了为什么从ASP.NET页面下载时,.docx文件被损坏?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
private void GetFile(String package,String fileName) { var stream = new MemoryStream(); try { using (ZipFile zip = ZipFile.Read(packagE)) { zip[filename].Extract(stream); } } catch (System.Exception eX) { throw new Exception("resources_FileNotFound",eX); } Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = "application/unknown"; if (filename.EndsWith(".docx")) { Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; } Response.AddHeader("Content-Disposition","attachment;filename=\"" + filename + "\""); Response.binaryWrite(stream.GetBuffer()); stream.Dispose(); Response.Flush(); httpContext.Current.ApplicationInstance.Completerequest(); }
问题是所有支持的文件正常工作(jpg,gif,png,pdf,doc等),但是.docx文件在下载时被损坏,需要由Office修复才能打开。
起初我不知道问题是否解压缩包含.docx的zip文件,所以不要把输出文件放在响应中,我先保存它,文件打开成功,所以我知道问题应该在回应写作。
你知道发生了什么吗?
事实证明,docx格式需要Response.End()在Response.binaryWrite之后。
以上是大佬教程为你收集整理的为什么从ASP.NET页面下载时,.docx文件被损坏?全部内容,希望文章能够帮你解决为什么从ASP.NET页面下载时,.docx文件被损坏?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。