2017-01-16 10 views
0

マイグレーションは、私にとって悪夢のようなものではありません。私はスウィフト/ iOS版/ AlamofireAlamofire4でmultipartFormDataをアップロードするには?

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は私に「アップロード」メンバへのあいまいな参照(_:へ:メソッド:ヘッダー)」というエラーを与えているが、I今Alamofire火災コールとは、エラーの数千人を投げるので、私はこれらのエラーメッセージを信頼できるかどうかわからない、1例は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

関連する問題