获得文件的MIME Type

获得文件的MIME Type 方式

  1. 搜索 http://www.w3school.com.cn/media/media_mimeref.asp
    2.方式二 发送请求
    3.方式三 调用C语言API
    4.方式四 通用的二进制数据类型 application/octet-stream

代码

#import "ViewController.h"
#import 

@interface ViewController ()

@end

@implementation ViewController

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    
    //方式一 搜索 http://www.w3school.com.cn/media/media_mimeref.asp
    //方式二 发送请求
    //方式三 调用C语言API
    //方式四 通用的二进制数据类型  application/octet-stream

    //方式二
    [[[NSURLSession sharedSession] dataTaskWithURL:[NSURL fileURLWithPath:@"/Users/a58/Desktop/123.png"] completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        
        //响应头信息 服务器端对已响应信息的描述
        NSLog(@"%@",response.MIMEType);
        //结果log
        //2018-04-04 16:33:09.628034+0800 11-获得文件的MIMEType[2021:166628] image/png
    }] resume];
    
    //方式三
    NSLog(@"方式三获取文件MIMEType类型 -- %@",[self getMIMETypeWithCAPIAtFilePath:@"/Users/a58/Desktop/123.png"]);
    // 结果log
    // 方式三获取文件MIMEType类型 -- image/png
    
}

//调用C语言的API来获得文件的MIMEType ,只能获取本地文件哦,无法获取网络请求来的文件
 -(NSString *)getMIMETypeWithCAPIAtFilePath:(NSString *)path
 {
     if (![[[NSFileManager alloc] init] fileExistsAtPath:path]) {
         return nil;
     }
  
     CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)[path pathExtension], NULL);
     CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass (UTI, kUTTagClassMIMEType);
     CFRelease(UTI);
     if (!MIMEType) {
         return @"application/octet-stream";
     }
     return (__bridge NSString *)(MIMEType)
     ;
}

你可能感兴趣的:(获得文件的MIME Type)