Swift - 获取文件的MIMEType类型(根据后缀名自动获取)
作者:hangge | 2018-11-15 08:10
有时我们需要获得文件的 MIMEType(文件资源类型),比如上传时需要将文件资源类型传给服务器,这样服务器就可以判断文件是图片还是音视频等。
下面通过样例进行演示如何借助苹果自带的 MobileCoreServices 库来获取文件类型的 mimeType。
1,样例代码
方便使用,这里我们定义一个 mimeType(pathExtension:) 方法,只需传入后缀名即可返回对应的 mimeType。
import UIKit
import MobileCoreServices
class ViewController: UIViewController {
override func viewDidLoad() {
//测试1
let mimeType1 = mimeType(pathExtension: "gif")
print(mimeType1)
//测试2
let path = Bundle.main.path(forResource: "test1", ofType: "zip")!
let url = URL(fileURLWithPath: path)
let mimeType2 = mimeType(pathExtension: url.pathExtension)
print(mimeType2)
}
//根据后缀获取对应的Mime-Type
func mimeType(pathExtension: String) -> String {
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,
pathExtension as NSString,
nil)?.takeRetainedValue() {
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?
.takeRetainedValue() {
return mimetype as String
}
}
//文件资源类型如果不知道,传万能类型application/octet-stream,服务器会自动解析文件类
return "application/octet-stream"
}
}
2,运行效果
全部评论(0)