在downfile.aspx中加入datagride控件
<asp:DataGrid id="dgfilelist" runat="server" AutoGenerateColumns="False" Width="152px">
<Columns>
<asp:TemplateColumn HeaderText="附件标题">
<ItemTemplate>
<a href='download.aspx?DocTitle=<%# DataBinder.Eval(Container.DataItem,"DocTitle") %>'>
<%# DataBinder.Eval(Container.DataItem,"DocTitle") %>
</a>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="类型">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"DocType") %>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid></FONT></P>
然后在dwonload.aspx中:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace longmengOA
{
/// <summary>
/// download 的摘要说明。
/// </summary>
public class download : System.Web.UI.Page
{
SqlConnection objConnection;
SqlDataReader dr;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string doctitle= Page.Request.QueryString["DocTitle"].ToString();
string connstr="server=(local);Initial Catalog=longmengoa;User ID=sa;Password=lm;";
objConnection = new SqlConnection(connstr);
//读取数据
objConnection.Open();
string sqlstr="Select * from TupDoc where DocTitle='" +doctitle+"'" ;
SqlCommand sqlcmd=new SqlCommand(sqlstr,objConnection);
dr=sqlcmd.ExecuteReader();
//运行测试
try
{
//读取成功
if (dr.Read())
{
string fileName = dr["DocTitle"].ToString();//文件名
// new BusiFile().ReadFileStream(fileName, (byte[])dr["Doc"]);//文件长度
Response.ContentType = "application/octet-stream";
//对下载文件名使用UTF8编码,避免乱码
Response.AddHeader("Content-Disposition",
"attachment;FileName+HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8));
//显示文件下载进度
Response.AddHeader("Content-Length",
((byte[])dr["fileImage"]).Length.ToString());
Response.BinaryWrite((byte[])dr["Doc"]);
Response.End();
}
}
catch (Exception err)//出错
{
HttpContext.Current.Response.Write("<script
language=javascript>alert('" + err.Message + "');</script>");
//提示出错原因
}
dr.Close();//关闭DataReader
HttpContext.Current.Response.End();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}