在mozilla中显示打开/下载文件选项

时间:2014-03-13 12:40:51

标签: c#

我需要从服务器下载文件。它的代码如下所示:

public void ProcessRequest(HttpContext context)
{
    string fileName = context.Request.QueryString["fileName"];

    string filePath = HostingEnvironment.ApplicationPhysicalPath + "/TempFolder/" + fileName;

    if (File.Exists(filePath))
    {
        context.Response.ContentType = "application/octet-stream";
        context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);

        using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
        {
            int _READ_LEN = 3000;

            int bLength = _READ_LEN;
            BinaryReader bReader = new BinaryReader(fileStream);

            if (bReader.BaseStream.Length < _READ_LEN)
                bLength = (int)bReader.BaseStream.Length;

            while (bReader.BaseStream.Position != bReader.BaseStream.Length)
            {
                context.Response.BinaryWrite(bReader.ReadBytes(bLength));

                if ((bReader.BaseStream.Length - bReader.BaseStream.Position) < _READ_LEN)
                    bLength = (int)(bReader.BaseStream.Length - bReader.BaseStream.Position);
            }
        }

        context.Response.Flush();

        File.Delete(filePath);
    }
}

当我尝试在Mozilla中下载文件时,它会自动下载文件而不要求打开/下载文件,而在IE中工作时会显示此选项。 我需要在Mozilla中显示此选项。 我试图搜索这些东西,但找不到任何有用的东西。 有人可以建议一个解决方案吗?

2 个答案:

答案 0 :(得分:0)

如果Mozilla Firefox自动下载文件而不询问目的地,则很可能配置为以这种方式工作。查看Mozilla Firefox Help了解详情。

答案 1 :(得分:0)

Afaik这是与浏览器相关的行为(浏览器设置包括处理不同文件类型的方法)。

如果您希望采用与浏览器无关的方式来处理此问题,我建议使用例如一个模态弹出框,提示用户选择。根据答案,您可以构造一个可以在文件处理程序中处理的查询字符串。