如何在 alamofire 中将 pdf 文件作为多部分表单数据上传?
How to upload pdf file as multi part form data in alamofire?
我必须将 pdf 文件作为多部分表单数据上传。
我读 Alamofire/Usage.md(Uploading Data to a Server)
所以我写了下面的代码。
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)
}
}
}
但是被归档了。
如何在 alamofire 中将 pdf 文件作为多部分表单数据上传?
您可能需要指定 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"
}
您需要指定 mimeType
:
multipartFormData.append(pdfData, withName: "pdfDocuments", fileName: "pdf", mimeType:"application/pdf")
已更新
根据错误,您必须了解服务器需要名称为 "file"
的 pdf
试试这个:
multipartFormData.append(pdfData, withName: "file", fileName: "file", mimeType:"application/pdf")
我必须将 pdf 文件作为多部分表单数据上传。
我读 Alamofire/Usage.md(Uploading Data to a Server)
所以我写了下面的代码。
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)
}
}
}
但是被归档了。
如何在 alamofire 中将 pdf 文件作为多部分表单数据上传?
您可能需要指定 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"
}
您需要指定 mimeType
:
multipartFormData.append(pdfData, withName: "pdfDocuments", fileName: "pdf", mimeType:"application/pdf")
已更新
根据错误,您必须了解服务器需要名称为 "file"
的 pdf试试这个:
multipartFormData.append(pdfData, withName: "file", fileName: "file", mimeType:"application/pdf")