在Web服务器上强制下载文件 – ASP .NET C#

前端之家收集整理的这篇文章主要介绍了在Web服务器上强制下载文件 – ASP .NET C#前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
用户单击基于ASP.NET(C#)的Web应用程序中的按钮时,我需要强制下载.sql文件

当在按钮被点击时,保存为对话框应该在客户端打开…

我该如何做?

编辑

这是我正在使用的代码

  1. string sql = "";
  2. using (System.IO.StreamReader rdr = System.IO.File.OpenText(fileName))
  3. {
  4. sql = rdr.ReadToEnd();
  5. }
  6. Response.ContentType = "text/plain";
  7. Response.AddHeader("Content-Disposition","attachment; filename=Backup.sql");
  8. Response.Write(sql);
  9. Response.End();

这是我正在收到的错误

alt text http://img40.imageshack.us/img40/2103/erroro.gif

怎么了?

解决方法

创建一个单独的HTTP处理程序(DownloadsqlFile.ashx):
  1. <%@ WebHandler Language="C#" Class="DownloadHandler" %>
  2.  
  3. using System;
  4. using System.Web;
  5.  
  6. public class DownloadHandler : IHttpHandler {
  7. public void ProcessRequest(HttpContext context) {
  8. var fileName = "myfile.sql";
  9. var r = context.Response;
  10. r.AddHeader("Content-Disposition","attachment; filename=" + fileName);
  11. r.ContentType = "text/plain";
  12. r.WriteFile(context.Server.MapPath(fileName));
  13. }
  14. public bool IsReusable { get { return false; } }
  15. }

然后使ASP.NET页面中的按钮导航到DownloadsqlFile.ashx。

猜你在找的HTML相关文章