2017-02-15 50 views
1

我怎么可以在上传时MultipartFormData中添加参数结构:Alamofire,在参数结构上传MultipartFormData

let parameters = [ 
"parameter1": "test1", 
"parameter2": "test2"] 

Alamofire.upload(multipartFormData: { multipartFormData in 
     for (key, value) in parameters { 
      multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
     } 
     multipartFormData.append(structObject, withName: "user") 

     if let imageData = UIImageJPEGRepresentation(image, 1) { 
     multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "file.png",  mimeType: "image/png") 
    } 
    }, to: url, encodingCompletion: { encodingResult in 
     switch encodingResult { 
     case .success(let upload, _, _): 
      upload.responseJSON { response in 
       if let value = response.result.value as AnyObject?{ 
        let json = JSON(value) 
       } else { 

       }      
      } 
     case .failure(let encodingError): 
      print(encodingError) 

     } 
    } 
    ) 

我可以额外的参数没有任何问题,但我不能一个对象添加到参数数组

谢谢

+0

你的'struct'在哪里? – Pierce

+0

multipartFormData.append(structObject,withName:“user”),那里我使用简单的结构的情况下,和其他情况下,我使用复杂的结构 – Abdel

回答

1

添加multipartFormData低于下列循环参数之间进行映射和参数附加键和值:

let parameters = [ 
"parameter1": "test1", 
"parameter2": "test2"] 

Alamofire.upload(multipartFormData: { multipartFormData in 
     multipartFormData.append(structObject, withName: "user") 

     if let imageData = UIImageJPEGRepresentation(image, 1) { 
     multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "file.png",  mimeType: "image/png") 
     for (key, value) in parameters { 
      multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
     } 
    } 
    }, to: url, encodingCompletion: { encodingResult in 
     switch encodingResult { 
     case .success(let upload, _, _): 
      upload.responseJSON { response in 
       if let value = response.result.value as AnyObject?{ 
        let json = JSON(value) 
       } else { 

       }      
      } 
     case .failure(let encodingError): 
      print(encodingError) 

     } 
    } 
    ) 
+0

问题是,我不能附加structObject – Abdel

+0

什么是“structObject”在这里?我看不到在哪里宣布 –

+0

这是一个简单的结构 – Abdel