如何在Swift / Alamofire中使用multipartFormData?

时间:2017-03-07 06:06:47

标签: swift alamofire

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")

我想在字符串中附加正文部分,我找不到任何方法,因为我可以在这个正文部分附加一个字符串。它只需要data.But我的参数是一个字符串,我必须将其作为字符串传递而不是数据。

3 个答案:

答案 0 :(得分:0)

试试这个:

Swift 2.0

multipartFormData.appendBodyPart(data: imageData.dataUsingEncoding(NSUTF8StringEncoding)!, name: "image")

Swift 3.0

 multipartFormData.append(imageData(using: String.Encoding.utf8)!, withName: "image")

答案 1 :(得分:0)

这是我项目中的代码。我希望它可以帮到你

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)
        }

答案 2 :(得分:0)

您想要将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参数。

如果您仍然遇到问题,请告诉我。