我正在尝试解决以下问题:
我有一个下载按钮,点击后,重定向到一个文件进行下载。 例如:
的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类型是否实际应用?
答案 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文件,但适用于其他文件