2016-11-15 3 views
0

Мне нужно преобразовать довольно большой проект с различными типами данных, которые нужно загружать как multiparts. Для этого я создал несколько структур, которые строят необходимые объекты MultipartFormData.Pass MultipartformData to Alamofire.upload

Некоторые из загрузок довольно малы, другие - больше. Поэтому я изучаю метод .upload() Alamofire (v4).

Этот метод имеет закрытие для добавления частей к объекту multipartFormData.

Alamofire.upload(
    multipartFormData: { multipartFormData in 
      // do stuff here 
    } 

Но я не нашел способ передать мой существующий объект MultipartformData к этому методу.

Это должно быть как:

self.parts = MultipartformData() 
... 
// do stuff with self.parts 
... 

Alamofire.upload(
    multipartFormData: { multipartFormData in 
      multipartFormData = self.parts 
    } 

Но это не работает, как я получаю следующее сообщение об ошибке:

параметры могут не иметь «Var» спецификатор

Я использую XCode 8.1, Alamofire 4 и Swift 3.

Спасибо!

ответ

0

Try ниже код:

let image = UIImage.init(named: "myImage") 
let imgData = UIImageJPEGRepresentation(image!, 0.2)! 

let parameters = ["name": rname] 

Alamofire.upload(multipartFormData: { multipartFormData in 
     multipartFormData.append(imgData, withName: "fileset",fileName: "file.jpg", mimeType: "image/jpg") 
     for (key, value) in parameters { 
       multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
      } 
    }, 
to:"mysite/upload.php") 
{ (result) in 
    switch result { 
    case .success(let upload, _, _): 

     upload.uploadProgress(closure: { (progress) in 
      print("Upload Progress: \(progress.fractionCompleted)") 
     }) 

     upload.responseJSON { response in 
      print(response.result.value) 
     } 

    case .failure(let encodingError): 
     print(encodingError) 
    } 
} 
+0

Это не работает, как MultipartformData не соответствует последовательности. Я обновил свой вопрос с более конкретным описанием того, что я хочу передать. –