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

Где твоя 'структура? – 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