如何在不基于扩展名的IOS中获得Mime类型

我们知道我们可以从文件的扩展名中获取文件的MIME TYPE,但并不完全一样。例如,我们更改了文件的扩展名,并且会得到错误的MIME类型。 并且我们也知道通过C#中的文件签名获取MIME类型的方式(使用urlmon.dll使用.NET,如何根据文件签名而不是扩展名找到文件的MIME类型,我的问题是我们如何才能在IOS中获得确切的mime类型,无论文件的扩展名是由某人改变的,我们都可以获得正确的mime类型。

感谢您的关注〜!


你能否告诉我,当我得到一个文件路径时,我是如何得到正确的mime类型的。

iOS使用统一类型标识符(UTI)的概念来处理文档类型。

NSString *path; // contains the file path

// Get the UTI from the file's extension:

CFStringRef pathExtension = (__bridge_retained CFStringRef)[path pathExtension];
CFStringRef type = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension, NULL);
CFRelease(pathExtension);

// The UTI can be converted to a mime type:

NSString *mimeType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass(type, kUTTagClassMIMEType);
if (type != NULL)
    CFRelease(type);

您应该考虑直接使用UTI来达到您的目的,而不是将它们转换为功能较弱的MIME类型。

链接地址: http://www.djcxy.com/p/46921.html

上一篇: How Can I get Mime Type in IOS which is not based on extension

下一篇: urlmon.dll FindMimeFromData() works perfectly on 64bit desktop/console but generates errors on ASP.NET