asp.net开发技巧

不断学习的过程中,经常遇到一些代码编写技巧性的东西,虽然通常不是什么特别困难的技术问题,不过也十分重要。

为避免遗忘并方便查证,特记录于此。

在页面中直接发文件到客户端

说明: 将下面代码加入干净的aspx页或隐藏代码页即可(此处假设页面为download.aspx);
效果: 链接到地址[download.aspx?file=filename]直接产生下载;
目的: 与直接链接文件地址下载方式比较,可以在下载前加入代码,统计下载数;另外,根据需要可以改写参数(例如改为数据库中该下载文件记录的id),做简单的代码处理,就可以在一定程度上隐藏下载地址,防止盗链……

private void Page_Load(object sender, System.EventArgs e)
{
string path = Server.MapPath(Request.Params[“File”]);
System.IO.FileInfo file = new System.IO.FileInfo(path);

Response.Clear();
Response.AddHeader(“Content-Disposition”, “attachment; filename=”+ file.Name);

    Response.AddHeader(“Content-Length”, file.Length.ToString());
Response.ContentType = “application/octet-stream”;
Response.WriteFile(file.FullName);
Response.End();
}