【问题标题】:Upload an image (Base64) using Alamofire Swift 3使用 Alamofire Swift 3 上传图像 (Base64)
【发布时间】:2017-03-29 18:14:22
【问题描述】:

我正在尝试使用 alamofire 通过 JSON 请求将 2 张图片上传到服务器

这是我的代码:

   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)


   }

当我打印响应时,我在控制台中收到消息 unknown >>

我在邮递员中尝试过它也不起作用,那有什么问题?有什么帮助吗?

【问题讨论】:

    标签: ios swift alamofire


    【解决方案1】:

    您应该使用其他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 })
    }
    

    【讨论】:

    • 我也在使用 multipartFormData 和 base64 吗?如果是的话,我怎么能把它作为参数发送?
    • @Muhamméd 我认为您应该检查您的服务器端以验证它是否获取图像并执行您想要的操作。
    【解决方案2】:

    你可以试试这个

    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)  
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 2018-09-01
      • 2016-10-01
      • 2020-09-11
      • 2017-03-13
      • 2018-02-12
      • 1970-01-01
      相关资源
      最近更新 更多