Objective C 根据文件的扩展名获取 MIME Type

Objective C 2020-02-14 阅读 272 评论 0

使用 http post上传文件,需要将文件资源类型传给服务器,这样服务器就可以判断文件是图片还是音视频等。下面介绍在 iOS 项目下,使用了 Objective C,根据文件名称的扩展类型,获取文件的 MIME Type(Content Type)。

示例

此方法需要用到MobileCoreServices.framework,需将框架加入到Build Phases -> Link Binary With Libraries,并在代码的头文件引入。

#import <MobileCoreServices/MobileCoreServices.h>

/**
 获取文件的 mime type
 */
- (NSString *)getMimeType:(NSString *)fileExtension{
  NSString *UTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExtension, NULL);
  NSString *mimeType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)UTI, kUTTagClassMIMEType);
  return mimeType;
}

使用

NSString *path = @"/home/test.png";
NSString *fileExtension = [path pathExtension];
NSString *contentType = [self getMimeType:fileExtension];
NSLog(@"%@", contentType);
// 输出  image/png

注意

使用此方法获取到的不是文件真正的 MIME-Type,比如一张图片是 png,MIME Type 是image/png,如果这张图片的扩展名改成了 jpg,将获取到image/jpeg

最后更新 2020-02-14
MIP.watch('startSearch', function (newVal, oldVal) { if(newVal) { var keyword = MIP.getData('keyword'); console.log(keyword); // 替换当前历史记录,新增 MIP.viewer.open('/s/' + keyword, {replace: true}); setTimeout(function () { MIP.setData({startSearch: false}) }, 1000); } }); MIP.watch('goHome', function (newVal, oldVal) { MIP.viewer.open('/', {replace: false}); });