Как я могу получить Mime Type в IOS, который не основан на расширении

мы знаем, что мы можем получить файл MIME TYPE из расширения файла, но это не так. Например, мы изменили расширение файла, и мы получим неправильный тип mime. а также мы знаем, как получить тип mime с помощью сигнатуры файла в С# (используя urlmon.dll Использование .NET. Как вы можете найти тип mime файла на основе подпись файла не расширение, мой вопрос в том, как мы можем получить точный тип mime в IOS, независимо от того, что расширение файла было изменено кем-то, мы можем получить правильный тип mime.

Благодарим вас за внимание ~!

Ответ 1

Не могли бы вы сказать мне, как я получаю правильный тип mime, когда я получаю путь к файлу.

iOS использует концепцию Унифицированные идентификаторы типов (UTI) для обработки типов документов.

NSString *path; // contains the file path

// Get the UTI from the file 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.