c# - 是否可以从加载到 MemoryStream 的文件中获取文件扩展名或类型?

标签 c# memorystream

我正在用 C# 创建一个服务,该服务将由处理和存储文件的 ASP.Net Web API 使用。

作为 Web API 的一部分,我获取文件并将它们存储在 MemoryStream 中,然后将其传递给服务以进行实际处理和存储。

服务的一部分是为每个文件生成一个新文件名。

这让我想到了一个问题,是否有可能找出文件现在在 MemoryStream 中的文件类型/扩展名?

最佳答案

没有扩展,你可以猜类型:

除非文件内容以某种方式包含名称/扩展名 MemoryStream 本身不包含有关原始文件名的任何信息。

您可以尝试通过读取流的部分/全部内容来检测文件类型(例如,许多格式在开头有 magic number/signature)。

还有几个类似的问题类似Using .NET, how can you find the mime type of a file based on the file signature not the extension (讨论使用 UrlMon 来检测类型)。

关于c# - 是否可以从加载到 MemoryStream 的文件中获取文件扩展名或类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24808613/

相关文章:

arrays - 在vb.net中将base64解码为图像

c# - Stream.CopyTo 和 MemoryStream.WriteTo 之间的区别

c# - 如何用 0xFF 字节填充 MemoryStream?

c# - 如何将 XML 文档注释添加到 Roslyn 中的 ClassDeclarationSyntax?

c# - 从 SQL Server 存储过程返回多个值

c# - MemoryStream 的 byte[] 缓冲区可以有可变大小吗?

php - 包含来自 "php://memory"流

c# - 使用 TimeZoneInfo.GetSystemTimeZones() 时获取 Windows 时区索引;

c# - 格式化 DateTime 错误 "No overload for method ' ToString' 需要 1 个参数”

c# - Windows Azure 表存储帐户中如何拥有用户和角色信息以进行系统身份验证