下载前“另存为”对话框

时间:2018-05-22 12:30:08

标签: c# asp.net-mvc filestream filestreamresult

我在控制器中有一个下载配置的功能:

public FileStreamResult SaveData()
{
    var toJson = JsonConvert.SerializeObject(this.GetData());
    var byteArray = System.Text.Encoding.ASCII.GetBytes(toJson);
    var stream = new MemoryStream(byteArray);
    string fileName = "Configuration.json";
    this.GetData().Save = false;
    return new FileStreamResult(stream, "text/html")
    {
        FileDownloadName = fName
    };
}

它工作正常,但唯一的问题是它会自动下载文件。我想为用户提供更新名称和设置下载位置的可能性,即我希望在下载之前弹出“另存为”对话框。

我看了很多来源,但找不到合适的东西。任何人都可以建议,应该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:0)

不同浏览器在显示“另存为”对话框时的行为不同。拥有任何控制权的唯一方法是不向浏览器提供有关文件数据类型或名称的提示。在这些情况下,浏览器别无选择,只能向用户询问文件名。

替换" text / html"使用" application / octet-stream"。这说'#34;这里有一堆字节,但我不知道它们代表什么"。

删除FileDownloadName。如果浏览器没有名称,则需要提供一个名称。

您可能需要执行上述一项或两项操作,具体取决于您关注的浏览器。