Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.NET Core AzureBlob下载文件(带重命名)_Javascript_Html_Asp.net Core_Azure Storage Blobs_Azure Blob Storage - Fatal编程技术网

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存储帐户。内容处置属性应适用于这两种类型的帐户。我以为你在分享你的观察结果,所以我发表评论。没问题!:我也在想,我们用几个测试帐户试过了,结果是一样的:不行,我这几天会把问题提交给微软