更新时间:2023-01-15 12:39:28
import MobileCoreServices
func createRequest(userid: String, image: [UIImage]) throws -> NSMutableURLRequest {
var parameters: [String : AnyObject] = [
"userid": userid,
"Image1": image[0], // You need to set the UIImage Type image parameters
"Image2": image[1],
"Image3": image[2],
"Image4": image[3]
]
print(parameters)
let boundary = generateBoundaryString()
let url = URL(string: Your URL String)!
let request = NSMutableURLRequest(url: url)
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
request.httpBody = try createBody(with: parameters as [String : AnyObject], boundary: boundary)
return request
}
以下是multipart / form-data中的上传图像和参数代码
Here is Code of Upload Image and Parameters in multipart/form-data
func createBody(with parameters: [String: AnyObject], boundary: String) throws -> Data {
var body = Data()
for (key, value) in parameters {
if(value is String || value is NSString) {
body.append("--\(boundary)\r\n")
body.append("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n")
body.append("\(value)\r\n")
}else if(value is UIImage) {
let r = arc4random()
let filename = "image\(r).jpg"
let data = UIImageJPEGRepresentation(value as! UIImage,1);
let mimetype = mimeTypeForPath(path: filename)
body.append("--\(boundary)\r\n")
body.append("Content-Disposition: form-data; name=\"\(key)\"; filename=\"\(filename)\"\r\n")
body.append("Content-Type: \(mimetype)\r\n\r\n")
body.append(data!)
body.append("\r\n")
}
}
body.append("--\(boundary)--\r\n")
return body
}
func mimeTypeForPath(path: String) -> String {
let pathExtension = path.pathExtension
var stringMimeType = "application/octet-stream";
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as! CFString, nil)?.takeRetainedValue() {
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
stringMimeType = mimetype as NSString as String
}
}
return stringMimeType;
}
extension String {
var ns: NSString {
return self as NSString
}
var pathExtension: String? {
return ns.pathExtension
}
var lastPathComponent: String? {
return ns.lastPathComponent
}
}