iOS 获取文件 MIMEType

原创
2017/03/23 17:08
阅读数 1.9K

主要通过两种方式来实现:

  1. 向该文件发送请求,根据请求头拿到该文件的MIMEType

  2. 调用C语言的API来获得文件的MIMEType ,只能获取本地文件哦,无法获取网络请求来的文件

具体代码如下:

声明方法:

/**
 获取文件的 MIMEType
 向该文件发送请求,根据请求头拿到该文件的MIMEType

 @param filePath  文件路径
 @return 文件 MIMEType
 */
- (NSString*)ay_getFileMIMETypeWithURLRequestOfFilePath:(NSString*)filePath;



/**
 获取文件的 MIMEType
 调用C语言的API来获得文件的MIMEType ,只能获取本地文件哦,无法获取网络请求来的文件

 @param filePath  文件路径
 @return 文件 MIMEType
 */
- (NSString*)ay_getFileMIMETypeWithCAPIOfFilePath:(NSString*)filePath;

方法实现:

- (NSString*)ay_getFileMIMETypeWithURLRequestOfFilePath:(NSString*)filePath{
    
    NSURL *url = [NSURL fileURLWithPath:filePath];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    NSHTTPURLResponse *response;
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
    NSString *mimetype = response.MIMEType;
    return mimetype;
}

- (NSString*)ay_getFileMIMETypeWithCAPIOfFilePath:(NSString*)filePath{
    
    if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
        return nil;
    }
    
    CFStringRef UTi = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef _Nonnull)([filePath pathExtension]), NULL);
    CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass(UTi, kUTTagClassMIMEType);
    CFRelease(UTi);
    if (!MIMEType) {
        return @"application/octet-stream";
    }else{
        return (__bridge NSString *)(MIMEType);
    }
}

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部