是否有任何Web服务允许我提供文件扩展名,它会返回可能的MIME类型列表?
例如:
http://mimetype.com/getMime/doc
Run Code Online (Sandbox Code Playgroud)
哪个可以返回:
application/msword,application/docappl/text,application/vnd.msword,application/vnd.ms-word,application/winword,application/word,application/x-msw6,application/x-msword
Run Code Online (Sandbox Code Playgroud)
我不想使用Urlmon.dll,我宁愿不必保持自己的列表是最新的.
谢谢
为什么Urlmon.dll中的FindMimeFromData函数会为许多文件类型返回MIME类型"application/octet-stream",而通过文件扩展名(即针对Windows注册表)检查MIME类型会返回更精确的类型?
例如,mp3是"application/octet-stream"而不是"audio/mp3".
基本上,我想验证上传的文件扩展名不正确.这种方法似乎适用于许多图像文件,xml等.
问题与此类似,但由于返回的MIME类型不同/不明确,所提供的解决方案不适合验证上传的文件.
我正在创建一个实用程序库,以便在Web环境中的桌面环境中使用.
它包含我认为在我的应用程序中经常重复的几个功能,包括通过其内容(而不是扩展名)获取文件的mime类型的实用程序.
我必须检查的文件是最常见的(jpg,png,pdf,txt)所以我选择使用外部方法FindMimeFromData(上面的链接)
使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型
该方法运行良好,除了两个不正确的mime类型的JPG(image/pjpg)和PNG(image/x-png),通过在return语句之前进行检查很容易解决.
该库是为平台AnyCPU编译的,因为它必须以32位和64位安装在服务器/客户端上.
在桌面环境测试时,所有为x86和x64编译的应用程序都正常工作.
在测试ASP.NET应用程序(带有用于测试的http处理程序的空站点)时发生类型为HRESULT的错误,并且调试器告诉我它无法提供进一步的信息.
经过一些测试配置,包括将池的身份更改为本地系统(没有结果),我已经确定了问题:
池应该允许32位应用程序(见上图).

为什么?
它不应该加载urlmon.dll我们现在的64位系统的DLL ?
这是一个很大的问题,因为该FindMimeFromData方法可以被任何地方调用到这个库中:
结果是,另一个实用程序方法调用此方法可能会抛出此异常,并且很难通过调试来跟踪问题.
任何想法/经验?
用于测试的操作系统
桌面:
网址:
我有一个asp.net mvc动作,它返回一个文件结果.在幕后,它只是从目录返回一个文件.FilePathResult需要内容类型,但我不知道.
如果我只有文件路径可用,那么返回文件结果的正确方法是什么?
.NET项目中的.cs(C#source),.resx,.aspx等文件是否有官方MIME类型?
如果没有定义官方类型,那么关于良好MIME类型的任何建议?mod_dav_svn当从Web浏览器查看Subversion存储库时,这将通过Apache和模块公开,因此任何有助于Firefox 等人正确渲染文件的方法都可以解决问题.
我有一个工作流程,允许用户上传任何文件,然后将读取该文件.
现在我的问题是,如果用户有图像文件xyz.jpg并且他只将其重命名为xyz(扩展名已移除),我们仍然可以使用/读取文件数据/元数据获取文件的类型/扩展名.
谢谢大家
我想有一个文件类型的白名单,用户有权上传到我的IIS服务器(我使用IIS v7.5).
我有哪些选择?例如,要将控制器中的特定操作的文件大小限制为5MB,我将此部分添加到我的webconfig:
<location path="home/fileupload">
<system.web>
<!-- maxRequestLength is in kilobytes (KB) -->
<httpRuntime maxRequestLength="5120" /> <!-- 5MB -->
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- maxAllowedContentLength is in bytes -->
<requestLimits maxAllowedContentLength="5242880"/> <!-- 5MB -->
</requestFiltering>
</security>
</system.webServer>
</location>
Run Code Online (Sandbox Code Playgroud)
webconfig中是否有一个选项来设置允许的文件类型的白名单?或者唯一的选择是在文件完全上传时验证代码中的文件类型?什么是推荐的技术?我怎么能确定.docx,.pdf,.jpg等真的是它们是什么?
通过Windows DLL可访问的FindMimeFromData方法Urlmon.dll能够确定存储在内存中的给定数据的MIME类型,考虑到存储此类数据的字节数组的前256个字节.
然而,在阅读了它的文档后,我在Windows Internet Explorer中引领了MIME类型检测,在那里我可以找到此方法能够识别的MIME类型.见清单.如您所见,此方法仅限于26种MIME类型.
所以我想知道是否有人能指出我有更多MIME类型的另一种方法,或者另外一种方法/类我可以包含我认为合适的MIME类型.
谢谢.
c# ×5
mime-types ×4
.net ×2
asp.net-mvc ×2
.net-core ×1
32bit-64bit ×1
asp.net ×1
asp.net-core ×1
audio ×1
content-type ×1
dllimport ×1
file ×1
file-upload ×1
iis ×1
mime ×1
mod-dav-svn ×1
mp3 ×1
svn ×1
urlmon ×1
web-services ×1