无法使用Alamofire上传图像

问题描述 投票:0回答:1

我正在尝试像这样使用Alamofire上传图像...

func callImageUploadAPI() {

    for i in ArrayData.shared.imageAndIDDictArray {

        let id = "\(i["id"]!)"

        let url = "http://api-the-upload-api/api/observation/uploadImage/\(id)"
        let headers = [

            "Accept": "application/json",
            "Authorization": theToken

        ]

            let parameters: [String: String]  =
                [
                    "id": "\(i["id"]!)"
            ]

            Alamofire.upload(multipartFormData: {(multipartFormData) in
                let filePath = NSURL(fileURLWithPath: url)

                let type = "image/jpg"
                var image = "\(i["image"]!)"
                var imageData = Data(image.utf8)
                imageData.append(("Content-Type: \(type)").data(using: .utf8)!)

                multipartFormData.append (imageData, withName: "file", fileName: "\(Date().timeIntervalSince1970).jpg", mimeType: "image/jpg")

                for (key, value ) in parameters {
                    print(key,value)

                    multipartFormData.append(value.data(using: .utf8)!, withName: key)
                }
            }, to: url, method: .post, headers: headers)
            { (result) in
                switch result {
                case .success(let upload, _,_ ):


                    upload.uploadProgress(closure: { (progress) in
                        UILabel().text = "\((progress.fractionCompleted * 100)) %"
                        print (progress.fractionCompleted * 100)

                    })
                    upload.responseJSON { response in 

                        if let JSON = response.result.value {
                            print(JSON) //SHOWS THE ERROR 'Only images files are allowed' 
                        }else{
                            print("Error")
                        }
                    }
                case .failure(let encodingError):
                    print(encodingError)
                    break
                }
            }


    }

}

但是当我这样上传时,图像不会上传。但是,我可以进入成功案例。但是在成功块中,打印的JSON为Only images files are allowed。不知道为什么会这样。

但是当我通过上传图像来满足POSTMAN的请求时,该图像将被正确上传。

<< http:// ...
ios swift alamofire
1个回答
0
投票
我正在编写此答案,因为您可以调整代码。所以
© www.soinside.com 2019 - 2024. All rights reserved.