none
如何实现 点击Button1后打开放在服务器 /abc/a.doc 下面的a.doc文件 RRS feed

  • 问题

  • 如何实现 点击Button1后打开放在服务器 /abc/a.doc 下面的a.doc文件
    在button1.click的后台代码下写什么呢?
    2009年5月12日 11:47

答案

  • protected void Button1_Click(object sender, EventArgs e)
    {
        // 点击 Button 下载文件并隐藏路径(不会开新窗口)
        string fPath = Path.Combine(Server.MapPath("abc"), "a.doc");
        FileStream fFileStream = new FileStream(fPath, FileMode.Open);
        long fFileSize = fFileStream.Length;
        Context.Response.ContentType = "application/octet-stream";
        Context.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + HttpUtility.UrlEncode(Path.GetFileName(fPath), System.Text.Encoding.UTF8) + "\"");
        Context.Response.AddHeader("Content-Length", fFileSize.ToString());
        byte[] fFileBuffer = new byte[fFileSize];
        fFileStream.Read(fFileBuffer, 0, (int)fFileSize);
        fFileStream.Close();
        Context.Response.BinaryWrite(fFileBuffer);
        Context.Response.End();
    }

    知识改变命运,奋斗成就人生!
    • 已标记为答案 杜宏宇 2009年5月12日 13:35
    2009年5月12日 13:20
    版主

全部回复

  • Response.Redirect("~/abc/a.doc")
    【孟子E章】
    2009年5月12日 13:18
    版主
  • protected void Button1_Click(object sender, EventArgs e)
    {
        // 点击 Button 下载文件并隐藏路径(不会开新窗口)
        string fPath = Path.Combine(Server.MapPath("abc"), "a.doc");
        FileStream fFileStream = new FileStream(fPath, FileMode.Open);
        long fFileSize = fFileStream.Length;
        Context.Response.ContentType = "application/octet-stream";
        Context.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + HttpUtility.UrlEncode(Path.GetFileName(fPath), System.Text.Encoding.UTF8) + "\"");
        Context.Response.AddHeader("Content-Length", fFileSize.ToString());
        byte[] fFileBuffer = new byte[fFileSize];
        fFileStream.Read(fFileBuffer, 0, (int)fFileSize);
        fFileStream.Close();
        Context.Response.BinaryWrite(fFileBuffer);
        Context.Response.End();
    }

    知识改变命运,奋斗成就人生!
    • 已标记为答案 杜宏宇 2009年5月12日 13:35
    2009年5月12日 13:20
    版主