做了个图书网站-----想实现提供下载功能。好让别人下载来看
/ViewBookComment.aspx?BookID=2
/ViewBookComment.aspx?BookID=3
/ViewBookComment.aspx?BookID=4
/ViewBookComment.aspx?BookID=5
有一个button按钮。别人点击这就可以下载了
但我不知道怎么才能实现BookID变换button的连接也相应的改变。连接地址我准备放在列名为http的表中。表名为book。BookID也是book表中的一列。
希望高手给出个办法

解决方案 »

  1.   

    数据库里bookid和书的存放地址应该是一一对应的,根据id把url指向书的相对路径名就ok了
      

  2.   

    我也知道根据ID的不同。给button赋不同的连接地址。但具体怎么个做法我了解啊。还请高手讲解详细些。我一菜鸟
      

  3.   

    两种方法,
    一种楼上的已经说了,不过这样会暴露路径第二种:
    根据相应的参数,从数据库里读出图书的信息,计算出路径,然后得用一个下载函数实现下载。这样资源的路径不会暴露。public void FileDownload(string FullFileName)
    {
         System.Web.HttpContext context = System.Web.HttpContext.Current;
    FileInfo DownloadFile = new FileInfo(FullFileName);
    context.Response.Clear();
    context.Response.ClearHeaders();
    context.Response.Buffer = false;
    context.Response.ContentType = "application/octet-stream";
    //Response.ContentType = "application/ms-excel";
    context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
    context.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
    context.Response.WriteFile(DownloadFile.FullName); context.Response.Flush();
    context.Response.End();
    }
      

  4.   

    第一种方法:
    把图书文件放在网站根目录下的一个文件夹,打比方说保存在Download文件夹下,然后在数据库中添加图书文件的路径的记录,比方说在Download中保存一个abc.chm的电子书,那么在数据库添加这么一条记录:(这些数据我是乱造的)
    bookId    path
    1          /lownload/abc.chm  
    然后在页面/ViewBookComment.aspx?BookID=1中,获取参数BookId=1,根据这个参数读数据库,读出这个文件的具体地址为/download/abc.chm,那么重定向到这个文件,就可以了第二种方法:
    保存的方法与第一种相同,只不过下载的时候不是重定向这个图书文件,而是调用一个下载函数,先把资源读到内在里,然后以数据流的形式发送给用户
    比方在按钮事件里:
    protocted void Button_Click(object sender, EventArgs e)
    {
       //读出文件的路径
       string filePath = GetPath();     FileDownload(filePath);  //发送给用户
    }说的够详细了吧!
      

  5.   

    扯淡getpath 不定义么。那他去那里找值。你写的这些是给会的人看的。不是给不会的人看的
      

  6.   

    JGood() 说的已是很详细了。lz:抱歉实在太气氛了lz人品差