ios swift 4 - параметр записи Alamofire с файлом UIimage (конвертировать curl в alamofire) - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу отправить .post запрос на загрузку изображения. база запроса это cURL:

curl -X POST \
    --header "Authorization: 123456..." \
    --header "X-Storage-Id: 123456..." \
    --form fileItems[0].fileToUpload=@"/path/to/file1.txt"  \
    --form fileItems[0].path="/path1/path2/"    \
    --form fileItems[0].replacing=true  \
    --form fileItems[1].fileToUpload=@"/path/to/file2.txt"  \
    --form fileItems[1].path="/path1/path3/"    \
    --form fileItems[1].replacing=true  \
    http://example.com/uploadfiles

у меня есть UIImage от:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        picker.dismiss(animated: true, completion: nil)

        let image = info[UIImagePickerControllerEditedImage] as! UIImage


        // image  <------- i have this uiimage for uploading

    }

как загрузить image (UIImage) с вышеупомянутым cURL через Alamofire?

1 Ответ

0 голосов
/ 10 сентября 2018
let data = UIImagePNGRepresentation(image)!

let headers = ["Authorization": "...", 
               "X-Storage-Id": "..."]

let parameters = ["fileItems[0].replacing": "true",
                  "fileItems[0].path": "/path/something"]

Alamofire.upload(multipartFormData: { form in

    form.append(data,
                withName: "fileItems[0]",
                fileName: "file1.png",
                mimeType: "image/png")

    parameters.forEach({
        form.append($0.value.data(using: .utf8)!, withName: $0.key)
    })

}, to: "https://example.com/uploadfiles", method: .post, headers: headers) { result in

    //switch result { ... }

}
...