从链接的ASP.NET下载菜单

时间:2012-01-12 11:47:05

标签: c# asp.net html

我正在尝试解决以下问题:

我有一个下载按钮,点击后,重定向到一个文件进行下载。 例如:

  

的Response.Redirect( “http://www.example.com/data/file1.zip”);

单击此按钮时,您会看到一个菜单,您可以按“确定”进行下载。

但如果我有以下内容:

  

的Response.Redirect( “http://www.example.com/data/textfile.txt”);

我得到了一段文字。我不想要这种行为。

如果单击下载文件,如何在所有情况下弹出菜单。

我尝试了以下内容:

Response.ContentType = "application/octet-stream";

Response.Redirect("http://www.example.com/data/" + filename);

但是,如果我点击它,我仍然只是在浏览器中获取txt的内容。有没有办法检查这个mime类型是否实际应用?

2 个答案:

答案 0 :(得分:4)

您需要设置响应类型

octet-stream应强制用户打开或保存文件

类似

public class Download : IHttpHandler {
    public void ProcessRequest (HttpContext context) {
        string filename = context.Request.QueryString["file"];
        string file = context.Server.MapPath(filename);
        context.Response.ContentType = "application/octet-stream";
        context.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(filename));
        try
        {
            context.Response.TransmitFile(file);
        }
        catch (Exception ex)
        {
            SendFailedDownload(filename, context);
        }
        finally
        {
        }
    }
}

答案 1 :(得分:0)

而不是执行上述操作,只需使用链接标记并将href设置为文件的url。这不需要重定向或调整上下文。

<a href="<link to file>" title="">Download me </a>

这将提示您保存或打开...

不适用于txt文件,但适用于其他文件