如何在 Swift / Alamofire 中使用 multipartFormData?
Posted
技术标签:
【中文标题】如何在 Swift / Alamofire 中使用 multipartFormData?【英文标题】:How can i use multipartFormData in Swift / Alamofire? 【发布时间】:2017-03-07 06:06:47 【问题描述】:upload(.POST, isEdit == true ? mainURL+URLS.UpdateLicense.rawValue : mainURL+URLS.AddLicense.rawValue, multipartFormData:
multipartFormData in
if let imageData = UIImageJPEGRepresentation(self.selectdImage, 1)
multipartFormData.appendBodyPart(data: imageData, name: "image", fileName: "image.jpeg", mimeType: "image/jpeg")
我想在字符串中附加正文部分,但我找不到任何可以在此正文部分附加字符串的方法。它只需要数据。但我的参数是一个字符串,我必须将它作为字符串而不是数据传递。
【问题讨论】:
感谢 sahil 编辑我的代码 @SohilR.Memon 我想用这个多部分数据附加字符串参数。 发布你想要传递的参数。 参数 = ["data":[ "vehicle_id": vehicalData!.vehicleId, "puc_expire_date":dateStr, "puc_serial_number":txtLicenceNo.text!] ] 【参考方案1】:试试这个:
Swift 2.0
multipartFormData.appendBodyPart(data: imageData.dataUsingEncoding(NSUTF8StringEncoding)!, name: "image")
Swift 3.0
multipartFormData.append(imageData(using: String.Encoding.utf8)!, withName: "image")
【讨论】:
【参考方案2】:这是我项目中的代码。希望对你有帮助
var parameters: [String: String] = [
"Tag" : tagName,
"Title" : title,
"Content" : content,
"TypePost" : "0",
"CreatedAt" : "\(Date())"
]
for (key, value) in parameters
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
【讨论】:
【参考方案3】:您想上传带有其他参数的UIImage
,那么这里是如何实现的!
if let imageData = UIImageJPEGRepresentation(image, 1)
multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "file.png", mimeType: "image/png")
for (key, value) in parameters
multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
您需要区分 UIImage
和其他 String
参数。
如果您仍然遇到问题,请告诉我。
【讨论】:
以上是关于如何在 Swift / Alamofire 中使用 multipartFormData?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 5 在 Xcode 10.2.1 中添加 alamofire
如何在 Swift 中使用 Alamofire 读取本地 JSON
如何在 Swift 3 中使用 Alamofire 4 解析这个 json?