带有参数和标题的 Alamofire Multipart-form 图像上传 - Swift

Posted

技术标签:

【中文标题】带有参数和标题的 Alamofire Multipart-form 图像上传 - Swift【英文标题】:Alamofire Multipart-form Image Upload with Parameters and Headers - Swift 【发布时间】:2018-01-31 23:29:25 【问题描述】:

我们需要使用 POST 方法、参数和令牌将图像上传到 API。

这是我们的代码:

 func myImageUploadRequest()

    var boole : String!
    if(card) 
        boole = "1"
    
    else 
        boole = "0"
    
    let headers: HTTPHeaders = ["Authorization": "Token \(token!)"]
    print(headers.debugDescription)

    let param = [
        "comment":comment,
        "category":String(category),
        "amount":String(money),
        "payment_card":boole
    ]
    Alamofire.upload(method:.post,"https://llegoelbigotes.ubiqme.es/api/new-ticket/",headers:headers, multipartFormData: 
        multipartFormData in
        if let imageData = UIImageJPEGRepresentation(image,0.6) 
            multipartFormData.appendBodyPart(data:imageData,name:"image",fileName:"file.png",mimeType: "image/png")
        
        for(key,value) in param 
            multipartFormData.appendBodyPart(data:value.dataUsingEncoding(NSUTF8StringEncoding)!,name:key)
        
    , encdingCompletion: 
            encodingResult in
        switch encodingResult 
        case .Success(let upload, _, _):
            print("Success")
        upload.responseJSON response in
            print(response.request)
            print(response.response)
            print(response.data)
            print(response.result)
        if let JSON = response.result.value 
        print("JSON: \(JSON)")
        
    
        case .Failure(let encodingError):
        print(encodingError)
        
    )



这段代码给我们一个错误:

对成员'upload(_:to:method:headers:)'的模糊引用

知道出了什么问题吗?

【问题讨论】:

【参考方案1】:

认为你把参数的顺序弄错了。

 Alamofire.upload(multipartFormData:  multipartFormData in
            // multipartFormData here
        ,
        to: url,
        method: .post,
        headers: headers)  encodingResult in
            // results here
        

【讨论】:

以上是关于带有参数和标题的 Alamofire Multipart-form 图像上传 - Swift的主要内容,如果未能解决你的问题,请参考以下文章

如何上传带有 Alamofire 内部参数的图像

快速发送带有参数的 Alamofire 请求

使用 swift 在 Alamofire 中发送带有对象数组的 JSON 作为参数

如何使用带有 Alamofire 参数的数组?

带有 CRUD/Rest 的 Alamofire POST 参数

发送带有参数的 Alamofire 请求以及 HTTP 正文中的图像