我们知道我们可以从文件的扩展名中获取文件的MIME TYPE,但它并不完全正确。例如,我们更改了文件的扩展名,我们将得到错误的mime类型。 而且我们也知道通过C#中的文件签名获取mime类型的方式(使用urlmon.dll Using .NET, how can you find the mime type of a file based on the file signature not the extension,我的问题是我们怎样才能在IOS中获得精确的mime类型,无论文件的扩展名如何由某人改变,我们可以获得正确的哑剧类型。
谢谢你的关注〜!
答案 0 :(得分:27)
你能告诉我,当我得到一个时,我是如何得到正确的mime类型的 文件的路径。
iOS使用Uniform Type Identifiers(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类型。