关于在gridview中实现下载功能的一点问题

我用的而是mysql, 插入的是个button,在你的代码基础上,我做了点修改,但还是出错,我点了下载之后,没反应,也没说哪里有错,看不出来啊
protected void Button1_Click(object sender, EventArgs e)
{
//获取imgbtnDelete的Button对象
Button imgbtn = (Button)sender;
//引用imgbtnDelete控件的父控件上一级控件
GridViewRow gvr = (GridViewRow)imgbtn.Parent.Parent;
//获取文件真实姓名
string sqlStr = "select FileName from downloadlist where FileID='" + GridView1.DataKeys[gvr.RowIndex+1].Value.ToString() + "'";
//打开数据库
conn = new MySqlConnection(strSQL);
conn.Open();
MySqlDataAdapter dapt = new MySqlDataAdapter(sqlStr, conn);
DataSet ds = new DataSet();
dapt.Fill(ds, "downloadlist");
//获取文件路径
string strFilePath = Server.MapPath("DownLoad/" + ds.Tables["downloadlist"].Rows[0]["FileName"].ToString());
ds.Dispose();
conn.Close();
////下载指定的文件
if (File.Exists(strFilePath))
{
FileInfo fileInfo = new FileInfo(strFilePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + ds.Tables["downloadlist"].Rows[0]["FileName"].ToString());
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
}


我是把下载文件都放在download这个文件夹中,每个下载文件的信息,我放在downloadlist这个表中,FileID是表的主键,我是想通过点击哪一行的按钮,然后这行的行号和表中的FileID有一个关联,然后可以得到该行的文件名,然后写到路径里面去,实现下载。我不知道路径是不是有问题
![图片说明
![图片说明

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问