使用 http post上传文件,需要将文件资源类型传给服务器,这样服务器就可以判断文件是图片还是音视频等。下面介绍在 iOS 项目下,使用了 Objective C,根据文件名称的扩展类型,获取文件的 MIME Type(Content Type)。
示例
此方法需要用到MobileCoreServices.framework
,需将框架加入到Build Phases -> Link Binary With Libraries
,并在代码的头文件引入。
#import <MobileCoreServices/MobileCoreServices.h>
- (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);
注意
使用此方法获取到的不是文件真正的 MIME-Type,比如一张图片是 png,MIME Type 是image/png
,如果这张图片的扩展名改成了 jpg,将获取到image/jpeg
。
使用 http post上传文件,需要将文件资源类型传给服务器,这样服务器就可以判断文件是图片还是音视频等。下面介绍在 iOS 项目下,使用了 Objective C,根据文件名称的扩展类型,获取文件的 MIME Type(Content Type)。
示例
此方法需要用到
MobileCoreServices.framework
,需将框架加入到Build Phases -> Link Binary With Libraries
,并在代码的头文件引入。使用
注意
使用此方法获取到的不是文件真正的 MIME-Type,比如一张图片是 png,MIME Type 是
image/png
,如果这张图片的扩展名改成了 jpg,将获取到image/jpeg
。