使用 Alamofire 上传图片以及其他字符串数据

Posted

技术标签:

【中文标题】使用 Alamofire 上传图片以及其他字符串数据【英文标题】:Upload Picture along With other string data using Alamofire 【发布时间】:2015-09-15 08:56:01 【问题描述】:

到目前为止,我一直在使用下面的代码将个人资料图片数据上传到服务器。

Alamofire.upload(.POST,
    URLString: "https://example.com/api/v1/users/profile_pic.json?auth_token=\(auth_token)",
    multipartFormData:  multipartFormData in
        multipartFormData.appendBodyPart(data: imageData, name: "avatar", fileName: "avatar_img.png", mimeType: "image/png")
    ,
    encodingCompletion:  encodingResult in

        switch encodingResult 
            case .Success (let upload, _, _):
                upload.responseJSON  request, response, data, error in

                // Do whatever 

                 
            case .Failure (let encodingError):
        

    )

但现在我还需要将我的用户的其他详细信息上传到服务器,例如 first_name 和 last_name。我应该如何与图片数据一起在一个请求中做到这一点?

【问题讨论】:

【参考方案1】:

你可以这样做

    Alamofire.upload(.POST, path, headers: self.predefinedHeaders, multipartFormData:  multipartFormData in

                    multipartFormData.appendBodyPart(data: imageData, name: "avatar", fileName: "avatar_img.png", mimeType: "image/png")

                    for (key, value) in parameters
                    
                            multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
                    

                    , encodingCompletion: encodingResult in
                     //your handling
                    )

【讨论】:

以上是关于使用 Alamofire 上传图片以及其他字符串数据的主要内容,如果未能解决你的问题,请参考以下文章

alamofire上传带json参数的图片

如何在 Swift 4 中使用 Alamofire 上传具有其他参数的多个图像

使用 Alamofire 上传具有 base64String 编码的多个图像的数组

使用 Alamofire 上传图片时崩溃

如何在 alamofire 中同步上传图片?

使用通常的方式将数据上传到 Alamofire,例如发布其他数据