如何从blazor服务器端下载文件

dev*_*ife 4 blazor blazor-server-side

我有一个服务器端 blazor 应用程序,它构建了大量数据,当用户单击按钮时,将使用该数据生成一个 excel 文件。所有这些都运行良好。但我的问题是下载该内存文件的合适方法是什么?我知道我可以将它保存到网络服务器磁盘并执行重定向或类似的操作来下载它,如果我不需要,我宁愿不必将文件保存到磁盘。

dev*_*ife 5

我最终使用的解决方案是 JS Interop 重定向到然后下载它的文件。

public async Task DownloadFileAsync(string path)
{
    await Js.InvokeAsync<string>("downloadFile", path);
}

// In JS
function downloadFile(filename) {
    location.href = '/api/downloads/' + filename;
}
Run Code Online (Sandbox Code Playgroud)