file - 如何从 Blazor 服务器端下载内存文件

标签 file download blazor blazor-server-side

有没有办法下载文件,在 中的内存中动态生成西装外套 服务器端无需将其存储在文件系统上?

最佳答案

解决方案是将 Web Api Controller 添加到 Blazor 服务器端应用程序中。

  • 添加 Controllers/DownloadController.cs Controller 到 Blazor 应用程序的根目录:

  • [ApiController, Route("api/[controller]")]
        public class DownloadController : ControllerBase {
    
            [HttpGet, Route("{name}")]
            public ActionResult Get(string name) {
    
                var buffer = Encoding.UTF8.GetBytes("Hello! Content is here.");
                var stream = new MemoryStream(buffer);
                //var stream = new FileStream(filename);
    
                var result = new FileStreamResult(stream, "text/plain");
                result.FileDownloadName = "test.txt";
                return result;
            }
    
    
        }
    
  • 调整 Startup.cs支持 Controller 路由的 Blazor 应用程序:

  • public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
    
                ...
    
                app.UseRouting();
    
                app.UseEndpoints(endpoints => {
    
                    endpoints.MapControllerRoute(
                        name: "default",
                        pattern: "{controller}/{action}");
    
                    endpoints.MapControllers();
    
                    endpoints.MapBlazorHub();
                    endpoints.MapFallbackToPage("/_Host");
    
                });
    
            }
    

    关于file - 如何从 Blazor 服务器端下载内存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59596338/

    相关文章:

    c - 在 C Win32 中使用 hBitmap = CreateDIBSection() 保存 .bmp 文件

    css - @font-face 只能在本地工作

    windows - 更新数 GB 程序的最佳方式(DVD 实现?更新软件?)

    ajax - 使用 Ajax 从 Servlet 下载文件

    asp.net-core - 如何在 .Net Core Blazor 应用程序中创建带有可折叠子菜单的 NavMenu

    c - segmentation Fault (core dumped) fread函数

    Python os.open() 无法将 umask 设置为 777(最大 755)

    javascript - 在 JavaScript 中创建并保存到文件新的 png 图像

    .net - Blazor United 会取代 WASM 和服务器吗

    blazor - 在 Blazor 中,为什么调用 NavigationManager.NavigateTo 有时会导致使用旧值进行额外的 OnParametersSetAsync 调用?