使用Alamofire Swift 3上传图像(Base64)

时间:2017-03-29 18:14:22

标签: ios swift alamofire

Iam尝试使用alamofire

将2张图片上传到服务器并使用JSON请求

这是我的代码:

   let parameters = ["CreditCardImage":CreditCardImage,"CreditCardBackImage":CreditCardBackImage , "CustomerID" : CustomerID]

            let headers: HTTPHeaders = [
                "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
                "Accept": "application/json"
            ]



   Alamofire.request("MY URL", method : .post , parameters : parameters, encoding: JSONEncoding.default ,  headers: headers).responseJSON { response in

        // get json Response


        let json = JSON(response.result.value)

        print(json)


   }

当我打印响应时,我收到消息<< 未知>>在控制台

我在邮递员那里尝试过它不能正常工作有什么不对吗?有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

您应该使用其他Alamofire方法。这是一个例子:

func uploadAvatar(image: UIImage) {
    Alamofire.upload(multipartFormData: { multipartFormData in
        if let imageData = UIImageJPEGRepresentation(image, 1) {
            multipartFormData.append(imageData, withName: "file", fileName: "file.png", mimeType: "image/png")
        }
    }, to: self.serverAddress + "/user/uploadAvatar", method: .post, headers: ["Authorization": User.shared.token], encodingCompletion: { _ in })
}

答案 1 :(得分:0)

你可以试试这个

let image = UIImage.init(named: "myImage")
 let imgData = UIImageJPEGRepresentation(image!, 0.2)!

 let parameters = ["name": rname]

Alamofire.upload(multipartFormData: { multipartFormData in
        multipartFormData.append(imgData, withName: "fileset",fileName: "file.jpg", mimeType: "image/jpg")
        for (key, value) in parameters {
                multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
            }
    },
to:"mysite/upload.php")
{ (result) in
    switch result {
    case .success(let upload, _, _):

        upload.uploadProgress(closure: { (progress) in
            print("Upload Progress: \(progress.fractionCompleted)")
        })

        upload.responseJSON { response in
             print(response.result.value)  
        }

    case .failure(let encodingError):
        print(encodingError)  
    }
}