极速前进 2015-05-13 02:55 采纳率: 50%
浏览 1813
已采纳

关于在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条回答 默认 最新

  • devmiao 2015-05-13 03:35
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型