在浏览器中显示下载进度

本文关键字:下载 显示 浏览器 | 更新日期: 2023-09-27 18:11:56

我正在从DropBox下载pdf的函数中工作,我使用的是ASP.net Core,一切都很好。唯一的问题是,当你点击下载链接时,它不会显示任何消息,而是下载文件。我想显示下载进度,就像我们从互联网下载东西时通常发生的那样,我不希望出现任何对话框,只是显示文件被下载了,就像在Chrome或IE等浏览器中通常发生的那样,然后有选择"显示在文件夹中"之类的东西,我需要添加什么?

 public async Task DownloadPdf()
            {
                DropboxClient client2 = new DropboxClient("cU5M-a4exaAAAAAAAAABDVZsKdpPteNmwHslOeFEo-HByuOr4v4ONvXoAMCFyOXH");
                string folder = "MyFolder";
                string file = "Test PDF.pdf";
                using (var response = await client2.Files.DownloadAsync("/" + folder + "/" + file))
                {
                    using (var fileStream = System.IO.File.Create(@"C:'Users'User'Downloads'Test.pdf"))
                    {
                        (await response.GetContentAsStreamAsync()).CopyTo(fileStream);                    
                    }
                }
            }

在浏览器中显示下载进度

我有一个asp.net核心项目的API返回一个文件:

[HttpGet("{id}")]
public IActionResult Get(int id) {
  byte[] fileContent = READ_YOUR_FILE();
  FileContentResult result = new FileContentResult(fileContent, "application/octet-stream") {
    FileDownloadName = id.ToString()
  };
  return result;
}

如果我在浏览器中从这个API (myapp/API/mycontroller/id)访问URL,那么我可以看到文件正在下载