小编典典

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

c#

当用户单击基于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

怎么了?


阅读 332

收藏
2020-05-19

共1个答案

小编典典

创建一个单独的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

2020-05-19