返回 导航

Swift

hangge.com

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)

回到顶部