我正在寻找一种简单的方法来获取文件扩展名不正确或没有给出的mime类型,类似于.Net中的这个问题.
有没有办法在Windows上使用某些系统调用来获取文件的MIME类型?我正在用C++编写IIS扩展,所以它必须可以从C++中调用,如果有一些功能暴露,我确实可以访问IIS.显然,IIS本身必须能够做到这一点,但我的谷歌搜索一直无法找到如何.我确实在SO上找到了这个与.net相关的问题,但这并没有给我太多的希望(因为那里既没有提到好的解决方案也没有提到C++解决方案).
我需要它,所以我可以使用我的应用程序中的相应内容类型提供动态文件.我的计划是首先查看我的应用程序中的MIME类型列表,然后回退到系统的MIME类型列表(但是这样可行;显然它存在,因为它是文件与程序关联的方式).在某些情况下我只有一个文件扩展名可以使用,但在其他情况下,我可能有一个实际的磁盘文件要检查.由于这些不是用户上传的文件,我相信我可以信任扩展,我更喜欢仅扩展的查找解决方案,因为它看起来更简单,更快.谢谢!
我想从代码隐藏文件中找到IIS ASP.NET Web服务器上给定文件扩展名的mime类型.
我想搜索服务器本身在提供文件时使用的相同列表.这意味着将包含Web服务器管理员添加到Mime Map的任何mime类型.
我可以盲目地使用
HKEY_CLASSES_ROOT\MIME\Database\Content Type
Run Code Online (Sandbox Code Playgroud)
但是没有记录为IIS使用的列表,也没有记录存储Mime Map的位置.
我可以盲目地调用FindMimeFromData,但是没有记录为IIS使用的相同列表,也不能保证IIS Mime Map也将从该调用返回.
PowerShell是否可以确定给定文件的类型?例如,如果我传递它的路径C:\Foo.zip,我可以让它确定该路径上的文件实际上是一个zip文件而不是其他东西吗?