向图像添加参数;上传api,如“userid”=“50”

时间:2016-08-08 14:25:18

标签: ios swift alamofire alamofireimage

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)

            }        })
    }

以上是我上传图片的代码。现在,我想通过此上传发送一些其他参数,我想知道写入了多少字节。

我试过使用下面的链接,但我无法实现这一点。 Uploading file with parameters using Alamofire

1 个答案:

答案 0 :(得分:0)

正如@ 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)")

然后,您需要通过将其挖出闭包来弄清楚您希望如何存储该值。但这应该是微不足道的。