广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    解决文件下载弹出窗体被拦截

    2018-04-16 10:58:01 次阅读 稿源:互联网
    零七广告

      原来我们项目在开发时中(文件是存储在数据库中)下载文件采用写入http头的形式。如下 Response.Clear();
      Response.Buffer = false;
      Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(fileWJNR.Rows[0]["WJM"].ToString(),System.Text.Encoding.UTF8));
      Response.BinaryWrite(字节流);
      Response.End();

              但在项目部署后,用户的IE6.0浏览时,会被拦截,并关闭退出。当时同事用了弹出一个窗体,再在弹出的窗体中再“点击下载”,这样就不会被拦截。
              我试了一个更直接的解决方法,就是点击时,先生成临时文件,再链接至临时文件,即弹出文件下载或打开对话框。代码很简单:

          string fileName =  "文件名"               //用文件id
          string tempFilePath = Request.PhysicalPath;
          tempFilePath = tempFilePath.Substring(0,tempFilePath.LastIndexOf(""));
          tempFilePath += " emp" + fileName;
          FileStream file = new FileStream(tempFilePath,FileMode.OpenOrCreate,FileAccess.ReadWrite);

          try
          {
         
           byte[] docBody =  (byte[])fileWJNR.Rows[0]["WJNR"];          //转换
           file.Write(docBody, 0, docBody.Length);
           file.Close();
           Response.Redirect("temp" + fileName);
          }
          catch
          {
              file.Close();
          }

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告