Как загрузить файл PDF в виде данных из нескольких частей в alamofire? - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно загрузить файл pdf в виде данных из нескольких частей.
Я прочитал Alamofire / Usage.md (Загрузка данных на сервер)

Поэтому я пишу код ниже.

extension ViewController: UIDocumentPickerDelegate {

    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
        guard let url = urls.first else { return }
        print(url) // file:///private/var/mobile/Containers/Data/Application/69C5B45A-AA29-46D2-909C-2A1A5A68C10F/tmp/com.test.test-Inbox/D5100_EN.pdf
        do {
            let data = try Data(contentsOf: url)
            print(data) // 10899227 bytes
            AF.upload(multipartFormData: { multipartFormData in
                multipartFormData.append(data, withName: "pdf")
            }, to: "https://myurl.com")
                .responseJSON { response in
                    debugPrint(response) // message = "Required request part 'file' is not present"
            }
        } catch {
            print(error)
        }
    }

}

Но он был подан.
Как я могу загрузить файл pdf в виде данных из нескольких частей в alamofire?

Ответы [ 2 ]

2 голосов
/ 11 октября 2019

Вам необходимо указать mimeType:

multipartFormData.append(pdfData, withName: "pdfDocuments", fileName: "pdf", mimeType:"application/pdf")

Обновлено

В соответствии с ошибкой вы должны понимать, что сервер ожидает PDF с именем "файл "

попробуйте это:

 multipartFormData.append(pdfData, withName: "file", fileName: "file", mimeType:"application/pdf")
0 голосов
/ 11 октября 2019

Возможно, вам нужно указать MimeType. Попробуйте обновить ваш запрос до

AF.upload(multipartFormData: { multipartFormData in
    multipartFormData.append(data, withName: "name", fileName: "fileName", mimeType: "application/pdf")
}, to: "https://myurl.com")
    .responseJSON { response in
        debugPrint(response) // message = "Required request part 'file' is not present"
}
...