【问题标题】:How to find file extension in Azure Storage?如何在 Azure 存储中查找文件扩展名?
【发布时间】:2020-03-17 09:20:07
【问题描述】:

如果文件名中没有扩展名,那么我无法获取contentType 来创建FileStreamResult。 示例:

byte[] byteFile = await someDirectory.GetFileContentAsync(fileName);    
string contentType; 
new FileExtensionContentTypeProvider().TryGetContentType(fileName, out contentType); // fileName without extension
return (byteFile, contentType); // contentType == null

有没有办法不从名称中获取扩展名?

【问题讨论】:

  • 您想获得 azure blob 文件扩展名吗?

标签: asp.net .net azure


【解决方案1】:

查看FileExtensionContentTypeProvider 的代码,有一个预定义的文件扩展名列表及其对应的mime 类型。如果文件扩展名不在该列表中,TryGetContentType 方法将返回 null

如果你得到一个没有文件扩展名的文件,一种可能的方法是通过读取它的元数据来找到文件的类型,但这真的很复杂。例如,读取文件内容,您可以了解文件是否为图像以及是否为 png 类型。但是您需要编写代码来识别每种类型的图像(png、bmp、gif 等)。

更简单的方法是将null 内容类型推断为默认内容类型。如果是 Azure 存储,则为 application/octet-stream

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多