swift3 alamofire

swift3 - Carga de Alamofire 4 con parámetros



(2)

Estoy haciendo lo siguiente para cargar un archivo PNG con parámetros:

Alamofire.upload( multipartFormData: { multipartFormData in multipartFormData.append(UIImagePNGRepresentation(tempImage!)!, withName: "file", fileName: "picture.png", mimeType: "image/png") // Send parameters multipartFormData.append((UserDefaults.standard.value(forKey: Email) as! String).data(using: .utf8)!, withName: "email") multipartFormData.append("png".data(using: .utf8)!, withName: "type") }, to: "user/picture", encodingCompletion: { encodingResult in switch encodingResult { case .success(let upload, _, _): upload.responseJSON { response in debugPrint("SUCCESS RESPONSE: /(response)") } case .failure(let encodingError): self.removeSpinnerFromView() print("ERROR RESPONSE: /(encodingError)") } } )

El problema es que en mi servidor no veo el email y type campos de formulario. Seguí ejemplos publicados en línea para esto. ¿Hay algo que deba hacer de manera diferente para esto?

EDITAR

Si elimino la parte donde pongo:

multipartFormData.append(UIImagePNGRepresentation(tempImage!)!, withName: "file", fileName: "picture.png", mimeType: "image/png")

ENTONCES los parámetros están incluidos. De lo contrario, creo que este es un error en Alamofire 4.0.1.


Está funcionando bien de mi lado.

Estoy usando el siguiente código:

let parameters = [ "file_name": "swift_file.jpeg" ] Alamofire.upload(multipartFormData: { (multipartFormData) in multipartFormData.append(UIImageJPEGRepresentation(self.photoImageView.image!, 1)!, withName: "photo_path", fileName: "swift_file.jpeg", mimeType: "image/jpeg") for (key, value) in parameters { multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) } }, to:"http://sample.com/upload_img.php") { (result) in switch result { case .success(let upload, _, _): upload.uploadProgress(closure: { (progress) in //Print progress }) upload.responseJSON { response in //print response.result } case .failure(let encodingError): //print encodingError.description } }


Si su valor es de tipo Any, puede cambiarlo así

for (key, value) in params { let paramsData:Data = NSKeyedArchiver.archivedData(withRootObject: value) formData.append(paramsData, withName: key) }