打开一个网页,然后下载一个c#文件

本文关键字:一个 下载 文件 然后 网页 | 更新日期: 2023-09-27 18:13:21

从一个文件。aspx我需要有一个重定向到一个网页,打开它,然后下载一个文件。下面是我的代码:

Source.aspx页

<script runat="server">
      protected override void OnLoad(EventArgs e)
      {
          Response.Redirect("Dest.aspx?download=true");
          base.OnLoad(e);
      }
    </script>
Dest.aspx页

<script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
        string download= (string)Request.QueryString["download"];
        if (download == "true")
        {       
            string url = "myurl/myfile.exe";
            System.Net.HttpWebRequest objRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
            System.Net.HttpWebResponse objResponse = (System.Net.HttpWebResponse)objRequest.GetResponse();
            int bufferSize = 1;
            Response.ClearHeaders();
            Response.ClearContent();
            Response.AppendHeader("content-disposition:", @"attachment;filename=""myFileName.exe""");
            Response.AppendHeader("Content-Length", objResponse.ContentLength.ToString());
            Response.ContentType = "application/download";
            byte[] byteBuffer = new byte[bufferSize + 1];
            System.IO.MemoryStream memStrm = new System.IO.MemoryStream(byteBuffer, true);
            System.IO.Stream strm = objRequest.GetResponse().GetResponseStream();
            byte[] bytes = new byte[bufferSize + 1];
            while (strm.Read(byteBuffer, 0, byteBuffer.Length) > 0)
            {
                Response.BinaryWrite(memStrm.ToArray());
                Response.Flush();
            }
            Response.Close();
            Response.End();
            memStrm.Close();
            memStrm.Dispose();
            strm.Dispose();
        }         
    }
</script>

现在有两个问题:

  1. 调用"源"页。下载自动开始,但页面Dest.aspx没有显示在浏览器中

  2. 下载的文件被称为"Dest.aspx"而不是我设置的"myFileName.exe"广告响应。AppendHeader("附加项:"@"附件;文件名="myFileName.exe ");

打开一个网页,然后下载一个c#文件

对于你的第二个问题,请尝试这样做

string attachment = string.Format(CultureInfo.InvariantCulture, "attachment; filename=" + sfilename + "", fi.Name); 
Response.ContentType = "application/octet-stream"; 
Response.AppendHeader("Content-Disposition", attachment);

对,你需要做的就是把这个过程分成两部分:

  1. 显示您的页面,并在页眉中设置重定向值,以自动重定向到您的下载
  2. 下载你的文件。

需要注意的重要一点是,你可以用一个网页或一个文件来响应,而不是同时响应。