C# 检查文件';按URL显示的内容类型?

C# 检查文件';按URL显示的内容类型?,c#,mime-types,content-type,httpwebresponse,C#,Mime Types,Content Type,Httpwebresponse,我正在开发一个应用程序,可以从不同的地方下载各种各样的媒体,其中很多都是用户输入的。我发现在http响应中找到的许多内容类型都是垃圾。似乎主要是视频。例如web上的某个地方有一个.wmv文件,但当我去抓取它时,它会说它的内容类型是text/plain 除了此响应内容类型之外,是否还有其他方法可以检查文件类型?我读了一些关于文件的神奇数字,但我不确定这有多可靠。。。也许它比响应内容类型更可靠 建议或想法?唯一简单的方法是尝试打开文件(与应用程序一起),看看它是否被正确解析 但是,如果您想要一个可以

我正在开发一个应用程序,可以从不同的地方下载各种各样的媒体,其中很多都是用户输入的。我发现在http响应中找到的许多内容类型都是垃圾。似乎主要是视频。例如web上的某个地方有一个.wmv文件,但当我去抓取它时,它会说它的内容类型是text/plain

除了此响应内容类型之外,是否还有其他方法可以检查文件类型?我读了一些关于文件的神奇数字,但我不确定这有多可靠。。。也许它比响应内容类型更可靠


建议或想法?

唯一简单的方法是尝试打开文件(与应用程序一起),看看它是否被正确解析


但是,如果您想要一个可以使用的API,它将尝试从您可以使用的给定数据中确定正确的MIME类型。虽然这是一个本机Win32函数,但您仍然可以通过使用它。

非常好。。。我想这需要我先下载数据,对吗?在一个完美的世界里,我会有我的url,通过一些web服务检查内容类型,然后存储为正确的类型。而不是存储为错误的类型,然后修复。也许我会设置自己的服务来实现这一点:)您不必下载整个文件。例如,您通常可以从前几个千字节中识别视频。有些文件可以愚弄你,但它们是不寻常的。我的经验是,如果内容类型说它不是视频,那么它可能不是。我忽略了这些。如果内容类型说它是我感兴趣的东西,我下载前几千字节,快速检查文件格式,如果它通过,我会考虑下载整个东西。“Jim Mischel,这听起来就像我想做的。有没有让我的生活更轻松的示例代码?:)干杯。@Nicros:下载文件的一部分很容易。只需提出请求,然后根据需要阅读尽可能多的内容。确定数据的格式是否正确更为复杂。我没有任何代码可以共享。您必须追踪识别不同视频类型的代码。