Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';单击LinkButton事件时无法下载文件_C#_Asp.net_Linkbutton_Asplinkbutton - Fatal编程技术网

C# Can';单击LinkButton事件时无法下载文件

C# Can';单击LinkButton事件时无法下载文件,c#,asp.net,linkbutton,asplinkbutton,C#,Asp.net,Linkbutton,Asplinkbutton,当用户单击gridview中的链接按钮事件时,我试图下载文件,但该文件未下载 用户单击linkbutton事件时的代码: protected void downloadLink_Click1(object sender, EventArgs e) { LinkButton lnkbtn = sender as LinkButton; GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow; string fi

当用户单击gridview中的链接按钮事件时,我试图下载文件,但该文件未下载

用户单击linkbutton事件时的代码:

protected void downloadLink_Click1(object sender, EventArgs e)
{
    LinkButton lnkbtn = sender as LinkButton;
    GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;


    string filename = lnkbtn.CommandArgument;

    byte[] mybuffer = Encoding.UTF8.GetBytes(filename);

    Response.Clear();
    Response.ClearHeaders();
    Response.ClearContent();
    //this puts the response to a page
    Response.ContentType = "application/" + "octet-stream";
    Response.AddHeader("Content-disposition", "attachment; filename=" + filename);
    Response.AddHeader("Content-Length", mybuffer.Length.ToString());

    Response.BinaryWrite(mybuffer);
    Response.Flush();
    Response.Close();
    Response.End();

}

使用内存流写入文件时,此代码对我有效。我的代码和你的代码的区别在于我有一个内容长度的头。您可能需要获取文件大小并添加此标题

 MemoryStream mybuffer= New MemoryStream(File.ReadAllBytes(filename));
 Response.Clear();
  Response.ClearHeaders();
  Response.ClearContent();
                //this puts the response to a page
  Response.ContentType = "application/" + "octet-stream";
  Response.AddHeader("Content-disposition", "attachment; filename=" + filename); 
  Response.AddHeader("Content-Length", mybuffer.Length.ToString());

  Response.BinaryWrite(mybuffer);
  Response.Flush();
  Response.Close();
   Response.End();