在浏览器中显示下载进度

时间:2016-10-06 13:17:22

标签: c# html asp.net asp.net-core

我正在使用从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);                    
                    }
                }
            }

1 个答案:

答案 0 :(得分:2)

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

[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的URL(myapp / api / mycontroller / id),那么我可以看到文件下载。