Используйте: multipartFormData.append (data, withName: "_formname") и multipartFormData.append (fileURL, withName: "photo")

ичок в программировании и разработке iOS. Мне нужно загрузить изображение, используя данные многочастной формы Alamofire, но мне также нужно ввести базовый заголовок аутентификации.

в этой темеAlamofire 4.0 Загрузить заголовок MultipartFormDataпохоже на мою проблему, код для загрузки

Alamofire.upload(multipartFormData:{ multipartFormData in
         multipartFormData.append(unicornImageURL, withName: "unicorn")
         multipartFormData.append(rainbowImageURL, withName: "rainbow")},
       usingThreshold:UInt64.init(),
       to:"https://httpbin.org/post",
       method:.post, 
       headers:["Authorization": "auth_token"], 
       encodingCompletion: { encodingResult in
        switch encodingResult {
        case .success(let upload, _, _):
            upload.responseJSON { response in
                debugPrint(response)
            }
        case .failure(let encodingError):
            print(encodingError)
        }
    })

но я запутался, как поставить заголовок базовой аутентификации (т.е. имя пользователя и пароль). и я также запутался, где я должен разместить свои данные изображения.

Я нашел другую ветку, которая кажется похожей на мою проблему. вот...Как загрузить MultipartFormData с аутентификацией с помощью AlamofireПредлагаемое решение - это код:

let username = "username"
let password = "password"

let credentialData = "\(username):\(password)".dataUsingEncoding(NSUTF8StringEncoding)!                  
let base64Credentials = credentialData.base64EncodedStringWithOptions([])
let headers = ["Authorization": base64Credentials]

Alamofire.upload(
    .POST,
    "https://rilbits.com/supersafe/photo/upload",
    headers: headers,
    multipartFormData: { multipartFormData in
        let data = "default".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
        multipartFormData.appendBodyPart(data: data, name: "_formname")
        multipartFormData.appendBodyPart(fileURL: fileURL, name: "photo")
    },
    encodingCompletion: { encodingResult in
        switch encodingResult {

        case .Success(let upload, _, _):
            upload.responseString { response in
                debugPrint(response)
            }

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

но после установки на swift 4.1 выдает ошибку:

не могли бы вы помочь моей проблеме? Заранее спасибо :)

Ответы на вопрос(3)

Ваш ответ на вопрос