日期:2014-05-18  浏览次数:20498 次

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

------解决方案--------------------
根据ID取文件路径?mark
------解决方案--------------------
传id----处理页面---取文件---return
------解决方案--------------------
上面是说,你把ID和文件路径都保存在数据库,传过来一个参数BookID=2,就根据这个2去找他的路径,然后就可以下载了哈
------解决方案--------------------
select http from 表 where BookID=* 然后把你的返回值拿来用.
------解决方案--------------------
// .aspx.cs for /ViewBookComment.aspx?BookID=2

string bookId = Request.QueryString[ "BookID "];

if(!String.IsNullOrEmpty(bookId)) thrown new ArgumentException( "参数有误。 ");

string sqlSelect = "SELECT [Http] FROM MyTable WHERE BookID= " + bookId;
// ADO.NET actions
// ...
string url = (string)cmd.ExecuteScalar(); // 由 XXXCommand 执行 sql 查询
//
Response.Redirect(url); // 注意相对路径要对哦


------解决方案--------------------
楼上的已经答了,我只有接点分了。谢谢。

其实既然你会根据ID取书的内容了,比如书名什么,那按钮读取下载地址也是一个道理。

其实也不用楼上说的那样,在点击之后才查询http列,可以先查询写到button的onclick事件里

ViewBookComment.aspx上怎么根据id取书名你总知道吧?那把书名的列名改成http,然后就取到了书的下载地址,比如放在变量downloadurl,然后直接在aspx上嵌入:

<input type= "button " onclick= "window.location.href= 'http:// <%=downloadurl%> ' ">

OK,点了按钮就会开始下载了。

当然,如果你的下载是要注册或者付费什么的,那还是用楼上的方式好,先进行权限检查,然后再下载。
------解决方案--------------------
是啊,LZ的已经说了,友情UP一下
------解决方案--------------------
n
牛就一饿子
------解决方案--------------------
假设页面/ViewBookComment.aspx有一个button1.
C# code

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string bookId = string.IsNullOrEmpty(Request.QueryString["bookID"]) ? string.Empty : Request.QueryString["bookID"];
            if (string.IsNullOrEmpty(bookId))
            {
                return;
            }
            else
            {
                Button1.PostBackUrl = string.Format("ViewBookComment.aspx?BookID={0}", bookId);
            }
        }
    }