Добавить параметры к изображению; загрузить api как userid = 50

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)

            }        })
    }

Выше мой код для загрузки изображения. Теперь я хочу отправить некоторые другие параметры с этой загрузкой, и я хочу знать, сколько байт записано.

Я пытался использовать приведенные ниже ссылки, но мне не удалось этого добиться. Загрузка файла с параметрами с помощью Alamofire


person ZetrixWeb    schedule 08.08.2016    source источник
comment
см. это stackoverflow.com/questions/26497725/   -  person Anbu.Karthik    schedule 08.08.2016


Ответы (1)


Как уже упоминалось @anbu-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)")

Затем вам нужно выяснить, как вы хотите сохранить это значение, выкопав его из замыкания. Но это должно быть банально.

person cnoon    schedule 09.08.2016
comment
Спасибо, а как я могу установить объект заголовка запроса? - person ZetrixWeb; 09.08.2016