Загрузка фото Alamofire с ключом файла в теле - PullRequest
0 голосов
/ 29 мая 2018

Я могу загрузить фотографию через Почтальон, но в моем приложении для iOS это не удается, и это настолько странно, что я все еще получаю .success от encodingCompletion.

Вот часть моего кода

UpdateUserInfo

    //
    // Update user info
    //
    func updateUserInfo(){
        var imageData: Data!
        var url = ""
        if let userId = KeychainWrapper.standard.string(forKey: USER_ID_KEY){
            url = URL_USER_UPLOAD_PIC + userId
        }
        if pickedImage != nil{
            imageData = UIImagePNGRepresentation(pickedImage)
            //imageData = UIImageJPEGRepresentation(pickedImage!, 1.0)
        }
        let token = KeychainWrapper.standard.string(forKey: USER_LOGIN_TOKEN_KEY)!


        let headers: HTTPHeaders = [
            "Authorization": "Bearer \(token)"
        ]

        if imageData != nil{
            Alamofire.upload(multipartFormData: { (multipartFormData) in
                multipartFormData.append(imageData!, withName: "fileset", fileName: "file.png", mimeType: "image/png")
            }, to: url,
               method: .post,
               headers: headers,
               encodingCompletion: { encodingResult in
                switch encodingResult {
                case .success(let upload, _, _):
                    print("Donkey Success \(String(describing: upload.response?.statusCode))")
                    upload.responseString(completionHandler: { (response) in
                        debugPrint(response)
                    })
                case .failure(let encodingError):
                    print(encodingError)
                    print("Donkey Fail")
                }
            })
        }


    }

и в моем почтальоне у меня есть

Почтальон

enter image description here

Мой первый вопрос: почему я получаю .success, если не удается загрузить файл?

, а второй вопрос: нужно ли ставить ключ?"(видно у Почтальона) где-то по моей просьбе?если да, то где?

Спасибо за любую помощь заранее

1 Ответ

0 голосов
/ 29 мая 2018

В Post Man Image Key - это pic, но в вашем коде его "fileset"

меняется на

        multipartFormData.append(imageData!, withName: "pic", fileName: "file.png", mimeType: "image/png")

И success - результат кодирования не загружаетсяprocesss

EncodingResult - MultipartFormDataEncodingResult, который определяет, было ли кодирование MultipartFormData успешным и содержит ли результат кодирования в качестве связанных значений. - Success : представляет успешную кодировку MultipartFormData и содержит новый UploadRequest вместе с потоковой информацией. - Отказ : используется для обозначения сбоя в кодировке MultipartFormData, а также содержит кодировку

...