天蓝色 blob 存储中的 XLSX 文件作为 zip 文件下载
Posted
技术标签:
【中文标题】天蓝色 blob 存储中的 XLSX 文件作为 zip 文件下载【英文标题】:XLSX files in azure blob storage get downloaded as zip files 【发布时间】:2021-07-02 16:14:52 【问题描述】:我们的 Azure blob 存储中有一些文件 - 它们都是 xlsx 文件。 当我们通过 Azure 门户下载它们时(我们导航到存储帐户,然后导航到容器,然后选择一个文件并下载它)它会下载并保存为 zip 文件。
如果在下载后我们将其扩展名更改为 xlsx,则 Excel 将识别它并毫无问题地打开。但是,在下载时,有些东西迫使该扩展从 xlsx(我们在容器中看到)更改为 .zip。
当我们以编程方式(通过 c# 代码)访问文件或生成共享访问签名时,也会发生同样的情况。
它可能是什么以及如何解决它?
谢谢!
【问题讨论】:
无法重现此问题,您可以尝试在浏览器中下载复制并粘贴完整网址吗? 我也无法重现该问题。您上传的文件是否具有xlsx
扩展名?
xlsx 文件实际上是 xml 文件的压缩目录,因此它们实际上是 zip 文件。他们的“幻数”(又名“文件签名”)是 zip 文件之一(50 4B 03 04 [PK])。所以“它可能是什么”->某处正在检查已知的幻数并且安全地不信任扩展。 “如何解决它” -> 找到这是什么东西,不幸的是,我对此一无所知。
【参考方案1】:
当使用 C# 以编程方式访问 xlsx 文件时,我的工作是手动添加专门针对 xlsx 文件类型的 mime 类型,因为它们给我带来了问题(pdf 和图片工作正常),PS,我将文件名存储在我的具有相应文件名的数据库。即
if (YourModel.FileName.EndsWith("xlsx"))
return File(YourModel.FileData, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
【讨论】:
以上是关于天蓝色 blob 存储中的 XLSX 文件作为 zip 文件下载的主要内容,如果未能解决你的问题,请参考以下文章