【问题标题】:Blazor Download Azure Blob from URLBlazor 从 URL 下载 Azure Blob
【发布时间】:2021-10-29 15:55:19
【问题描述】:

我有一个 Blazor“下载按钮”组件,它将从我的 API 中获取一个 URI,其中包含 Azure Blob 存储中 Blob 的绝对 URI。从 API 返回 URI 后,我会调用一个 JS 函数来创建您看到的 a href。当单击 a href 文件时,文件被打开而不是被下载。有谁知道我做错了什么?

JS 代码:我在我的组件中使用 JS 隔离

export function Download(url, fileName) {
    let a = document.createElement('a');
    a.href = url;
    a.download = fileName;
    document.body.appendChild(a);
}

产生一个href

<a href="https://myBlobStorage.blob.core.windows.net/filePath.txt?sv=sharedAccessToken" download="FileName.txt"></a>

谢谢你,
特拉维斯佩特里

【问题讨论】:

  • 我能够正确下载文件。我用的是 Chrome 浏览器。你用的是哪个浏览器?
  • @GauravMantri 我正在使用 FireFox。我会在 chrome 中尝试一下。
  • @GauravMantri 我也试过 Chrome 和 Edge 他们只打开 .txt 文件。

标签: javascript c# download blazor azure-blob-storage


【解决方案1】:

我最终使用 Blazor 库从服务器下载文件流。

图书馆:https://github.com/arivera12/BlazorDownloadFile

我更改了我的服务器以返回文件响应:

return File(blob.DownloadStreaming().Value.Content, blob.GetProperties().Value.ContentType);

然后在 Blazor 中调用下载代码:

var resp = await _httpClient.GetAsync($"URL");
await BlazorDownloadFileService.DownloadFile("test.txt", await resp.Content.ReadAsByteArrayAsync(), resp.Content.Headers.ContentType.ToString());

【讨论】:

    猜你喜欢
    • 2016-09-19
    • 2013-04-16
    • 2020-03-29
    • 2017-08-20
    • 2014-09-20
    • 2019-04-06
    • 2019-12-19
    • 2019-09-05
    相关资源
    最近更新 更多