2017-01-16 6 views
0

Миграция была не чем иным, как кошмаром для меня. У меня есть этот старый код из предыдущей версии Swift/IOS/AlamofireКак сделать загрузку multipartFormData в Alamofire4?

let intVal = 0 

Alamofire.upload(.POST, url, headers: ["StringValue": intVal, "StringValue2": "StringValue3"], multipartFormData: { mpfd in 
     let image = self.profileImageView.image! 
     let imageData = UIImageJPEGRepresentation(image, 0.8)! 
     mpfd.appendBodyPart(data: imageData, name: "image", fileName: "custom_image.jpg", mimeType: "image/jpeg") 
     }, encodingCompletion: { result in 

      switch result { 
      case .success(let request, _, _): 
       let response = request.response 
       print("response from image change: \(response)") 
       print("Successfully changed pro pic") 
      case .failure/*(let encodingError)*/: 
       print("Failed to change pro pic") 
      } 

    }) 

Но теперь Xcode дает мне ошибку говоря «Неоднозначные ссылки на член«загрузки (_: до: метод: заголовки)», но я не знаю, могу ли я доверять этим сообщениям об ошибках, потому что пожар Alamofire вызывает и теперь бросает тысячи ошибок, один пример состоит в том, что encoding: .json теперь JSONEncoding.default, но Xcode сообщает мне об ошибке «Дополнительный метод в вызове функции». Поэтому я попробовал решение для большинства других ошибок, который должен переключить метод и URL-адрес аргументы

Alamofire.upload(url, method: .post, headers ...) 

Но это тоже не работает. Как я должен переписать это для работы с новым Swift/Alamofire?

+0

[Связанные Q & A] (http://stackoverflow.com/questions/41401913/cannot-invoke-append-with-an-argument-list- of-type-string-withname-string /) – dfri

ответ

1

Там пример в тестовый набор Alamofire в: https://github.com/Alamofire/Alamofire/blob/9688b16f0546b97b16c775c75f42b3f4bfacc78e/Tests/UploadTests.swift#L244

guard let image = self.profileImageView.image, 
    let imageData = UIImageJPEGRepresentation(image, 0.8) else { 
    return 
} 

Alamofire.upload(
    multipartFormData: { multipartFormData in 
    mpfd.append(imageData, withName: "image", fileName: "custom_image.jpg", mimeType: "image/jpeg") 
    }, 
    to: url, 
    headers: ["Header": value, "Another_Header": value2], 
    encodingCompletion: { result in 
    // Whatever 
    } 
) 
+0

где я бы поставил параметр 'headers', как в моем оригинале? Это на самом деле мой главный вопрос –

+0

Это необязательный параметр в функции 'upload'. См. Https://github.com/Alamofire/Alamofire/blob/2b65bfe6608a236772b4151b0ec9e82a51a22131/Source/Alamofire.swift#L376 - я отредактировал ответ, чтобы включить заголовки – Estel

Смежные вопросы