|
|
@@ -508,20 +508,6 @@ open class MultipartFormData {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // MARK: - Private - Mime Type
|
|
|
-
|
|
|
- private func mimeType(forPathExtension pathExtension: String) -> String {
|
|
|
- #if !(os(Linux) || os(Windows))
|
|
|
- if
|
|
|
- let id = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as CFString, nil)?.takeRetainedValue(),
|
|
|
- let contentType = UTTypeCopyPreferredTagWithClass(id, kUTTagClassMIMEType)?.takeRetainedValue() {
|
|
|
- return contentType as String
|
|
|
- }
|
|
|
- #endif
|
|
|
-
|
|
|
- return "application/octet-stream"
|
|
|
- }
|
|
|
-
|
|
|
// MARK: - Private - Content Headers
|
|
|
|
|
|
private func contentHeaders(withName name: String, fileName: String? = nil, mimeType: String? = nil) -> HTTPHeaders {
|
|
|
@@ -555,3 +541,44 @@ open class MultipartFormData {
|
|
|
bodyPartError = AFError.multipartEncodingFailed(reason: reason)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+#if canImport(UniformTypeIdentifiers)
|
|
|
+import UniformTypeIdentifiers
|
|
|
+
|
|
|
+extension MultipartFormData {
|
|
|
+ // MARK: - Private - Mime Type
|
|
|
+
|
|
|
+ private func mimeType(forPathExtension pathExtension: String) -> String {
|
|
|
+ if #available(iOS 14, macOS 11, tvOS 14, watchOS 7, *) {
|
|
|
+ return UTType(filenameExtension: pathExtension)?.preferredMIMEType ?? "application/octet-stream"
|
|
|
+ } else {
|
|
|
+ if
|
|
|
+ let id = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as CFString, nil)?.takeRetainedValue(),
|
|
|
+ let contentType = UTTypeCopyPreferredTagWithClass(id, kUTTagClassMIMEType)?.takeRetainedValue() {
|
|
|
+ return contentType as String
|
|
|
+ }
|
|
|
+
|
|
|
+ return "application/octet-stream"
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+#else
|
|
|
+
|
|
|
+extension MultipartFormData {
|
|
|
+ // MARK: - Private - Mime Type
|
|
|
+
|
|
|
+ private func mimeType(forPathExtension pathExtension: String) -> String {
|
|
|
+ #if !(os(Linux) || os(Windows))
|
|
|
+ if
|
|
|
+ let id = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as CFString, nil)?.takeRetainedValue(),
|
|
|
+ let contentType = UTTypeCopyPreferredTagWithClass(id, kUTTagClassMIMEType)?.takeRetainedValue() {
|
|
|
+ return contentType as String
|
|
|
+ }
|
|
|
+ #endif
|
|
|
+
|
|
|
+ return "application/octet-stream"
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+#endif
|