Шаблон не может соответствовать значениям типа "URLRequest" - PullRequest
1 голос
/ 10 июля 2020

Я пытаюсь загрузить изображение в параметрах Alamofire. Но я продолжаю получать эту ошибку, которая не позволяет мне компилировать. Я использую swift 5.

Ошибка

                    let image = profilePictureView.image!
                    let imageData = image.jpegData(compressionQuality: 0.50)
                    print(image, imageData!)

                    AF.upload(multipartFormData: { (multipartFormData) in
                            multipartFormData.append(imageData!, withName: "file", fileName: "swift_file.png", mimeType: "image/png")
                            for (key, value) in estimatedParams {
                                multipartFormData.append("\(value)".data(using: String.Encoding.utf8)!, withName: key)
                            }
                        }, to: ServiceConstants.baseUrl+ServiceConstants.MD_UPDATE_PROFILE+"/\(userId)")
                        { (result) in
                            switch result {
                            case .success(let upload, _, _):

                                upload.uploadProgress(closure: { (progress) in
                                    //Print progress
                                    print("uploading \(progress)")

                                })

                                upload.responseJSON { response in
                                    //print response.result

                                }
                            case .failure( _): break
                                //print encodingError.description
                            }
                        }
                   
                    
                    

1 Ответ

1 голос
/ 13 июля 2020

Вы можете использовать эту функцию:

//MARK: - Upload Image
    private func uploadUserImage(image: UIImage) {
        if let imageData = image.jpegData(compressionQuality: 1.0) {
            let headers: HTTPHeaders = [
                "Content-type": "multipart/form-data",
            ]
            
            AF.upload(
                multipartFormData: { multipartFormData in
                    multipartFormData.append(imageData, withName: "image" , fileName: "profile-image.png", mimeType: "image/png")
            },
                to: WebService.profileImageUploadURL, method: .post, headers: headers)
                .downloadProgress { progress in
                    print(progress)
            }
            .response { response in
                if response.response?.statusCode == 200 {
                    self.delegate?.uploadImageResponse(status: .success)
                } else {
                    self.delegate?.uploadImageResponse(status: .failed)
                }
            }
        }
    }
...