2016-08-08 30 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) 

      }  }) 
    } 

以上是我的代碼上傳圖片。現在,我想發送一些其他參數與此上載,我想知道有多少字節被寫入。將參數添加到圖像;上傳API如「userid」=「50」

我試圖使用下面的鏈接,但我一直未能實現這一點。 Uploading file with parameters using Alamofire

+0

看到這個http://stackoverflow.com/questions/26497725/how-to-upload-image-with-parameters-using-alamofire-in-swift –

回答

0

正如@庵埠,KARTHIK提到的,你可以通過額外調用到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