当用户单击基于ASP .NET(C#)的Web应用程序中的按钮时,我需要强制启动.sql文件的下载。
与之类似,单击按钮时,应在客户端打开另存为对话框。
我该怎么做呢?
编辑
这是我正在使用的代码
string sql = ""; using (System.IO.StreamReader rdr = System.IO.File.OpenText(fileName)) { sql = rdr.ReadToEnd(); } Response.ContentType = "text/plain"; Response.AddHeader("Content-Disposition", "attachment; filename=Backup.sql"); Response.Write(sql); Response.End();
这是我得到的错误…
替代文字http://img40.imageshack.us/img40/2103/erroro.gif
怎么了?
创建一个单独的HTTP处理程序(DownloadSqlFile.ashx):
<%@ WebHandler Language="C#" Class="DownloadHandler" %> using System; using System.Web; public class DownloadHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { var fileName = "myfile.sql"; var r = context.Response; r.AddHeader("Content-Disposition", "attachment; filename=" + fileName); r.ContentType = "text/plain"; r.WriteFile(context.Server.MapPath(fileName)); } public bool IsReusable { get { return false; } } }
然后,使ASP.NET页面中的按钮导航到DownloadSqlFile.ashx。
DownloadSqlFile.ashx