Javascript ASP.NET Core AzureBlob下载文件(带重命名)
我的页面上有以下代码:Javascript ASP.NET Core AzureBlob下载文件(带重命名),javascript,html,asp.net-core,azure-storage-blobs,azure-blob-storage,Javascript,Html,Asp.net Core,Azure Storage Blobs,Azure Blob Storage,我的页面上有以下代码: <a class="btn-default btn" href="<AzureBlobContainerUrl>/<guid>.psd" download="@Model.FileName" target="_blank">Download <span class="glyphicon glyphicon-export"></span> </a> @Model.FileName表示例如“M
<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会直接在当前浏览器选项卡中打开文件,而不是下载文件
有解决方法吗?对于第一个问题,请尝试在blob上设置Content Disposition属性。如果您使用的是C SDK,那么抓取blob,您可以使用如下方式设置C-D:
blob.FetchAttributes();
blob.Properties.ContentDisposition = string.Format("attachment;filename=\"{0}\"", yourFileName);
blob.SetProperties();
基于这个老问题,Chrome中的下载属性在C-D上的行为有所不同,因此明确设置此属性可能会解决您的第二个问题。好吧,非常感谢您的提示! 首先,代码和您的建议不起作用azure blos存储服务忽略了C-D属性,但经过几个小时的研究,我发现了问题: AccountKind StorageV2通用v2不使用C-D属性 AccountKind BlobStorage运行正常,没有任何问题
我重新创建了blob存储并使用了旧blob存储帐户类型。ContentDisposition属性正在使用。在哪里可以设置blob.FetchAttributes;等等。我可以在哪里设置内容处置标题?我在cshtml部分页面上。@WhiteIntel,如果可能的话,最好在blob添加到azure存储时尝试设置C-D。那你以后就不用担心了。如果这是不可能的,那么您可以在呈现页面之前执行此操作。您使用的是MVC还是Razor页面?这不是问题的答案。这更像是对Bryan提供的答案的评论或问题的更新。这是对我问题的回答,因为这正好解决了我的问题。我真的很惊讶这个解决方案不适用于V2帐户,但适用于Blob存储帐户。内容处置属性应适用于这两种类型的帐户。我以为你在分享你的观察结果,所以我发表评论。没问题!:我也在想,我们用几个测试帐户试过了,结果是一样的:不行,我这几天会把问题提交给微软