首页 > 解决方案 > 带有重命名的 ASP.NET Core AzureBlob 下载文件

问题描述

我的页面上有以下代码:

<a class="btn-default btn" href="<AzureBlobContainerUrl>/<guid>.psd" download="@Model.FileName" target="_blank">Download 
    <span class="glyphicon glyphicon-export"></span>
</a>

@Model.FileName 代表例如“MyPhotoshopFile.psd”

第一个问题:下载的文件具有原始 GUID 作为文件名,而不是例如“MyPhotoshopFile.psd”。

第二个问题:如果文件是 PDF,那么 Google 会直接在当前浏览器选项卡中打开文件,而不是下载它。

有什么解决方案吗?

标签: javascripthtmlasp.net-coreazure-blob-storage

解决方案


对于第一个问题,尝试在 blob 上设置 Content-Disposition 属性。如果您使用的是 C# SDK,则获取 blob,您可以使用以下方式设置 CD:

blob.FetchAttributes();
blob.Properties.ContentDisposition = string.Format("attachment;filename=\"{0}\"", yourFileName);
blob.SetProperties();

基于这个较早的问题(Chrome 下载属性不起作用),Chrome 中的“下载”属性根据 CD 的行为不同,因此明确设置它可能会解决您的第二个问题。


推荐阅读