2016-08-08 7 views
0
func uploadProfilePicture(data : NSData,completion: (success : Bool) -> Void) { 

     PKHUD.sharedHUD.contentView = PKHUDTextView(text: "Loading...") 
     PKHUD.sharedHUD.show() 
     Alamofire.upload(.POST,GlobalConstants.KUpdateProPic,multipartFormData: 
      { 
       multipartFormData in 
       multipartFormData.appendBodyPart(data : data, name: "image", fileName: Helper.timeStamp(), mimeType: "image/png") 
     }, 
     encodingCompletion: { encodingResult in 
      switch encodingResult { 
      case .Success(let upload, _, _): 
       upload.responseJSON { response in 
        debugPrint(response) 

        let status : NSString = response.result.value?.valueForKey("status") as! String 
        if(status .isEqualToString("1")){ 
         let profile_image : NSString = response.result.value?.valueForKey("profile_image") as! String 
         defaults.setObject(profile_image, forKey:"imageURL") 
         let fileUrl = NSURL(string: profile_image as String) 
         MyViewState.profile_image = (fileUrl?.lastPathComponent)! 
         PKHUD.sharedHUD.hide() 
         completion (success: true) 
        }else{ 
         PKHUD.sharedHUD.hide() 
         completion(success : false) 
        } 
       } 
      case .Failure(let encodingError): 
       print(encodingError) 
       PKHUD.sharedHUD.hide() 
       completion(success : false) 

      }  }) 
    } 

上記は私の画像をアップロードするコードです。今、私はいくつかの他のパラメータをに送りたいと思っています。書き込まれているバイト数を知りたいのですが。イメージにパラメータを追加します。 "userid" = "50"のようなAPIをアップロードする

私は以下のリンクを使用しようとしましたが、これを達成できませんでした。 Uploading file with parameters using Alamofire

+0

これを参照してくださいhttp://stackoverflow.com/questions/26497725/how-to-upload-image-with-parameters-using-alamofire-in-swift –

答えて

0

@暗部-カルティクが述べたように、あなたはmultipartFormDataオブジェクトに追加の呼び出しを行うことによって、追加のキーを追加することができます:総エンコードされたサイズを計算するための

var value: Int = 10 
let data = NSData(bytes: &value, length: sizeof(Int)) 

multipartFormData.appendBodyPart(data: data, name: "userid") 

、あなたは単にのためmultipartFormDataオブジェクトを照会することができますあなたはそれに体の部分を追加し終わった後には、コンテンツのサイズです:

print("Total Content Length: \(multipartFormData.contentLength)") 

次に、あなたが閉鎖からそれを掘って、その値を保存する方法を理解する必要があります。しかし、それは簡単ではありません。

+0

ありがとう、どのように私はリクエストヘッダーオブジェクトを設定できますか? – ZetrixWeb

関連する問題