2017-02-15 6 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

関連する問題