通过 文件路径/文件名/文件后缀 获取mimeType(文件媒
2020-01-07 本文已影响0人
演繹陌路人生
import MobileCoreServices
extension String {
/// 通过 文件路径/文件名/文件后缀 获取mimeType(文件媒体类型)
/// 需要导入 MobileCoreServices
var mimeType: String {
// 通用的二进制类型
let defaultMIMEType = "application/octet-stream"
// 获取文件名后缀标记
guard let tag = components(separatedBy: "/").last?
.components(separatedBy: ".").last?
.trimmingCharacters(in: .whitespacesAndNewlines) else { return defaultMIMEType }
// 异常则返回 二进制通用类型
guard let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, tag as CFString, nil)?.takeRetainedValue(),
let mimeType = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue()
else { return defaultMIMEType }
return mimeType as String
}
}