Alamofire 4 cargar con los parámetros de

Yo estoy haciendo el de abajo para subir un archivo PNG con los 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)")

            }
        }
    )

Problema es que en mi servidor, no veo la email y type campos de formulario. He seguido los ejemplos publicados en línea por este. Hay algo que debo hacer de manera diferente para esto?

EDITAR

Si puedo quitar la parte donde puse:

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

A CONTINUACIÓN, los parámetros son incluidos. De lo contrario, no se, creo que esto es un error en Alamofire 4.0.1.

OriginalEl autor KVISH | 2016-10-01

2 Kommentare

  1. 38

    Su trabajo muy bien en 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
            }
        }
    en la (clave, valor) en los parámetros , es el tipo de Valor ‘AnyObject’?
    sí.
    Su trabajo multa a mi lado. Podría ser backend problema.
    Puede u guía de cómo subir imágenes mediante el uso de swift 3 alamofire 4. Lo he hecho para swift 2.3 pero no es capaz de lograr con swift 3. Por favor me guía.
    ¿has probado mi código?

    OriginalEl autor Ekta Padaliya

  2. 2

    Si su valor es de tipo Alguno, usted puede cambiar esta

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

    OriginalEl autor Yun

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea