iphone - solucion - Determine el tipo MIME de NSData cargado de un archivo
winmail.dat outlook mac (3)
¿no puede ver nada en los encabezados de aceptación HTTP? Si está interceptando solicitudes, esperaría que el encabezado de aceptación se establezca en el mimo del tipo esperado en la mayoría de los casos
Por varias razones, estoy interceptando solicitudes http y cargando contenido de archivos en el directorio de documentos de mi aplicación usando NSURLProtocol. Parte del proceso implica cargar un objeto NSData, que puede ser desde un archivo html a una imagen jpeg. NSURLProtocol requiere configurar un mimetype.
¿Hay una API en el iPhone-SDK para determinar el tipo de mímeto del archivo o el contenido de NSData?
No estoy familiarizado con dicha API en el SDK. Sin embargo, si no hay forma de guardar el tipo mime, entonces puedes usar MagicKit .
Quizás pueda descargar el archivo y usarlo para obtener el tipo MIME del archivo.
+ (NSString*) mimeTypeForFileAtPath: (NSString *) path {
if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {
return nil;
}
// Borrowed from https://.com/questions/5996797/determine-mime-type-of-nsdata-loaded-from-a-file
// itself, derived from https://.com/questions/2439020/wheres-the-iphone-mime-type-database
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)[path pathExtension], NULL);
CFStringRef mimeType = UTTypeCopyPreferredTagWithClass (UTI, kUTTagClassMIMEType);
CFRelease(UTI);
if (!mimeType) {
return @"application/octet-stream";
}
return [NSMakeCollectable((NSString *)mimeType) autorelease];
}