IE11,从页面上下载文件,save时提示下载失败

ghlhy0505 2014-06-03 12:12:07

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/vnd.ms-pdf";
HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=" + fileName + ".pdf");
HttpContext.Current.Response.BinaryWrite(bytes);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();

用这个方法直接从页面上下载,通过IE11浏览,点击下载,会弹出如下图所示的下载提示框,


点击保存后,就会报这个错误:


失败的这个文件360kb,按理说这么小不至于的啊,问题出在IE11(IE10发现也会失败)的设置上吗?

如果通过IE8就能行,IE8的下载是个弹出窗口,然后点击保存就成功了。


代码没有捕捉到异常,即使是save失败的时候代码也没有抛出异常,我用记log的方式调查过。
session的过期时间采用的是20min,下载失败的情况也没有超过20min。

有人遇到过这种情况吗?求指教啊····多谢!
...全文
1038 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
pphuyidao 2015-07-13
  • 打赏
  • 举报
回复
这个问题太烦了我解决了好久没解决。楼主 “MMLLCSDN ” 的这个帖子太好了。我将生成的pdf 分段输出到页面。ie11 就不报哪个错误了。 这个分明就是ie11 的bug 不过没办法只好用这个方法绕过去。 非常感谢楼主的建议。
MMLLCSDN 2015-06-30
  • 打赏
  • 举报
回复
http://www.studyofnet.com/news/263.html 中的分块下载解决了我的问题,但要注意一下“attachment”这单词写错了。
MMLLCSDN 2015-06-30
  • 打赏
  • 举报
回复
哪位大神有解决办法。
ab12xy 2015-06-02
  • 打赏
  • 举报
回复
我也是遇到了这个问题,上面的方法都试了,解决不了
pphuyidao 2015-06-02
  • 打赏
  • 举报
回复
我也遇到同样的问题。不知道怎么解决。顶一下帖子。
miracle000084 2015-02-05
  • 打赏
  • 举报
回复
如果下载出错后,按retry能正常下载的话 HttpContext.Current.Response.Close(); 改成HttpContext.Current.ApplicationInstance.CompleteRequest(); 试试
Reposition 2015-01-18
  • 打赏
  • 举报
回复
看是不是有IE补丁没有安装,安装来看看
  • 打赏
  • 举报
回复
不要修改原来的代码。 把你电脑上“劫持ie”的所有程序都“正常卸载”了(如果不能正常卸载了,就没有办法了)、然后重启电脑,再试试看。
zhenxi_1627720174 2015-01-18
  • 打赏
  • 举报
回复
如何下载文件 //加载检索服务器中的文件名 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("Name", typeof(string))); string serverPath = Server.MapPath("File"); DirectoryInfo dir = new DirectoryInfo(serverPath); foreach (FileInfo fileName in dir.GetFiles()) { DataRow dr = dt.NewRow(); dr[0] = fileName; dt.Rows.Add(dr); } ListBox1.DataSource = dt; ListBox1.DataTextField = "Name"; ListBox1.DataValueField = "Name"; ListBox1.DataBind(); } }//codego.net/tags/11/1/ //选中索引保存到Session变量中 protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) { Session["txt"] = ListBox1.SelectedValue.ToString(); } //完成下载事件 protected void LinkButton1_Click(object sender, EventArgs e) { if (Session["txt"] != "") { string path = Server.MapPath("File/") + Session["txt"].ToString(); FileInfo fi = new FileInfo(path); if (fi.Exists) { Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode( fi.Name)); Response.WriteFile(fi.FullName); } } }
yun_shuai 2015-01-16
  • 打赏
  • 举报
回复
换其他方式 也这个问题,IE11有时成功,有时失败。 WIN2012的IE11 和 WIN7的IE11都有该问题。
try
                        {
                            //开始下载 附件
                            #region 
                            using (EA.Common.IdentityScope c = new EA.Common.IdentityScope(sUsername, sDomain, sPassword))
                            {
                                string filename = path + head.AttachmentsPath;
                                FileStream fs = new FileStream(filename, FileMode.Open);
                                Stream sw = Response.OutputStream;
                                Response.Clear();
                                Response.ContentType = "application/octet-stream";
                                Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(head.AttachmentsName));
                                byte[] buf = new byte[256];
                                int cnt = fs.Read(buf, 0, 256);
                                while (cnt > 0)
                                {
                                    sw.Write(buf, 0, cnt);
                                    Response.Flush();
                                    cnt = fs.Read(buf, 0, 256);
                                }
                                sw.Close();
                                fs.Close();
                                sw.Dispose();
                                fs.Dispose();

                            }
                            Response.Close();
                            //Response.End();
                            #endregion
                        }
yun_shuai 2015-01-16
  • 打赏
  • 举报
回复
单纯的下载,ASP.NET 以文件流方式下载,IE8没任何问题。 IE11 有时成功 ,有时失败。 失败提示 “无法下载。。。”
qydvip 2015-01-16
  • 打赏
  • 举报
回复
只是单纯的下载么 ? 没有操作word文件吧
Justin-Liu 2015-01-16
  • 打赏
  • 举报
回复
下载方法上网搜一个不一样的换换再试试
yun_shuai 2015-01-16
  • 打赏
  • 举报
回复
有人找到原因 并有解决方法吗?
明缘 2015-01-16
  • 打赏
  • 举报
回复
查看下IE相关设置。。。。。
csdnfan 2014-06-03
  • 打赏
  • 举报
回复
这个文件有多大啊?有一个header属性叫长连接。查一下Keep-Alive吧。
只有一个麦子 2014-06-03
  • 打赏
  • 举报
回复
下载浏览器补丁

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧