下载问题asp.net

时间:2010-08-26 07:59:49

标签: c# asp.net

嗨,这是当前的版本......请帮助。

                                                                                             “>                                                                                                                                                                                                                                             

使用System; 使用System.Collections; 使用System.Configuration; 使用System.Data; 使用System.Linq; 使用System.Web; 使用System.Web.Security; 使用System.Web.UI; 使用System.Web.UI.HtmlControls; 使用System.Web.UI.WebControls; 使用System.Web.UI.WebControls.WebParts; 使用System.Xml.Linq; 使用System.IO;

public partial class Default2:System.Web.UI.Page {     private void BindGrid()     {         DirectoryInfo目录=新的DirectoryInfo(“D:/ Pilabs Projects / GlobeDse / globedse website / globedse.com / Uploads”);         FileInfo [] files = dir.GetFiles();         GridView1.DataSource = files;         GridView1.DataBind();

}

protected void Page_Load(object sender, EventArgs e)
{


    if (!Page.IsPostBack)
    {
         BindGrid();
    }




}

private void Downloadfile(String fileName, String FullFilePath)
{

    Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
    Response.TransmitFile(FullFilePath);
    Response.End();


}

protected void GridView1_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
    if (e.CommandName == "Download")
    {
        String[] fileInfo = e.CommandArgument.ToString().Split(';');
        String FileName = fileInfo[1].ToString();
        String FullPath = fileInfo[0].ToString();
        Downloadfile(FileName, FullPath);
    }

}


protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{

    GridView1.PageIndex = e.NewPageIndex
    BindGrid();


}

}

2 个答案:

答案 0 :(得分:0)

首先,检查您的方法Downloadfile是否受到攻击。你也做了

Response.Write(FullPath);

哪种方式破坏你的输出。我宁愿将其设计为您重定向到另一个输出下载的页面。

答案 1 :(得分:0)

你错过了对回发的检查。你的Page_Load应该是这样的:

protected void Page_Load(object sender, EventArgs e) 
{ 
  if (!Page.IsPostBack)
  {
    BindGrid();
  }
}

重新数据绑定网格时,事件将丢失。