将base64String的图像与其他参数一起发布到服务器swift

时间:2017-03-27 05:36:21

标签: ios swift post alamofire

这里我有一个我在base64String中转换的图像(†他导致base64String太大)并试图在服务器上发布一些其他参数,但作为回报我正在失败。我有一个完成操作按钮,它开始转换并发布到服务器。我使用Alamofire作为http请求。下面是我使用但未获得结果的代码。

@IBAction func doneBtn(_ sender: Any) {

    if (itemNameTF.text?.characters.count)! > 0 && (itemPriceTF.text?.characters.count)! > 0 && (itemUnits.text?.characters.count)! > 0 {

    let productName = "\(itemNameTF.text!)_\(itemUnits.text!)"

        let productPrice = itemPriceTF.text!

        let productImage:UIImage = itemImage.image!
        if let dataImage = UIImageJPEGRepresentation(productImage, 0.5)?.base64EncodedString() {

            let url = "someURl"
            let parameter = ["product_name": productName, "product_price": productPrice, "product_img": "\(dataImage)"]

            headers = ["Content-Type": "application/json","Authorization" : "Token \(token!)"]
            Alamofire.request(url, method: .post, parameters: parameter, encoding: JSONEncoding.default, headers: headers).responseJSON { response in
                print(response.request)
                print(response.response)
                print(response.result)
                print(response.result.value)
            }
        }
    }
} 

结果它给了我一个

的回复

enter image description here

如果有人发现问题,请帮助我。谢谢!

1 个答案:

答案 0 :(得分:9)

只需将此行添加到您的代码中:

let fullBase64String = "data:image/png;base64,\(dataImage))"

然后添加“fullBase64String”

let parameter = ["product_name": productName,"product_price":productPrice,product_img": "\(fullBase64String)"]