当前位置:编程学习 > C#/ASP.NET >>

怎么实现点击下载?

某个文件的路径放在数据库中,怎么才能实现通过点击下载? --------------------编程问答-------------------- 可以利用a标签下载。从数据库中读出路径然后给a的href赋值就可以了。
<a href='...'>点击下载</a> --------------------编程问答--------------------  this.lblUrl.Text = reader["url"].ToString();我读取得到数据库的url,但是不知道该怎么用 --------------------编程问答-------------------- 盘符 放进去 --------------------编程问答-------------------- 回答具体点吧?我算是新手级别 --------------------编程问答-------------------- 读取得到数据库的url 也就是下载的文件名 temp.txt

然后你上传的文件放在哪个文件夹下 如根目录的abc文件夹

那么路径就是/abc/temp.txt 其中temp.txt 就是你读取出来的 reader["url"].ToString()

点击a链接的时候即可下载 --------------------编程问答-------------------- 1.点击下载的时候跳转到新的页面download.aspx?url=你的文件夹url&name=默认保存的名字
2.download.aspx页面的pageload事件:
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string fileName = Path.GetFileName(Request.QueryString["name"]);
                string filePath = HttpContext.Current.Server.MapPath(Request.QueryString["url"]); //路径

                Response.Clear();//清楚下载文件之前的response内容,以免写入多余response,导致下载文件出错
                Response.ClearHeaders();//清楚下载前头文件,以免冲突出错
                Response.Buffer = false;

                FileStream downfile = new FileStream(filePath, FileMode.Open, FileAccess.Read);//创建文件流,并指定文件权限
                byte[] data = new byte[downfile.Length];//大文件字节数组会溢出,导致出错
                downfile.Read(data, 0, data.Length);//将文件写如字节数组(流)
                downfile.Close();
                Response.ContentType = "application/octet-stream";//制定下载的文件格式
                Response.ContentEncoding = System.Text.Encoding.Default;//制定下载的文件的格式编码
                Response.AppendHeader("content-disposition", "attachment;filename=" + fileName);//内容配置,以附件下载,并下载文件名
                Response.BinaryWrite(data);
                Response.Flush();
                Response.End();
            }
        }

补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,