Я хочу скачать PDF-файл url, я использовал этот код:
class func downloadPdf(pdfReport: String, completion: @escaping (_ error: Error?, _ success: Bool,_ value: String) -> Void) {
let downloadUrl: String = URLs.pdfFileUrl + pdfReport
let destination = DownloadRequest.suggestedDownloadDestination()
print(downloadUrl, destination)
Alamofire.download(downloadUrl, method: .get, parameters: nil, encoding: JSONEncoding.default, to: destination).responseJSON { response in
switch response.result {
case .failure(let error):
print("error: ", error)
print(error.localizedDescription)
completion(error, false, "")
case .success(let value):
let json = JSON(value)
print(json)
print("successss")
completion(nil, true, "")
}
}
}
и в контроллере представления:
func downloadPdf() {
KRProgressHUD.show(withMessage: NSLocalizedString("wait", comment: "wait"))
API.downloadPdf(pdfReport: self.report.report){ (error: Error?, success: Bool, result: String) in
if success {
KRProgressHUD.dismiss()
} else {
KRProgressHUD.dismiss()
if (!Connectivity.isConnectedToNetwork()){
Toast.toast(messsage: NSLocalizedString("no internet", comment: "no internet"), view: self.view)
} else {
Toast.toast(messsage: NSLocalizedString("error occured", comment: "error occured"), view: self.view)
}
}
}
}
при первом вызове метода downloadPdf
он успешно загрузил файл, но я получил эту ошибку:
https://madrasty.dev.ibtdi.work/public/reports/15287105135b1e4571f2596-new.pdf (Функция) ошибка: responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed (Ошибка домена = NSCocoaErrorDomain Code = 3840 "Invalidзначение около символа 0. "UserInfo = {NSDebugDescription = Недопустимое значение вокруг символа 0.})) Не удалось сериализовать JSON из-за ошибки: تعذرت قراءة البيانات نظرًا لأن تنسيقها غير صحيح.
, если 1015 *1014*Метод снова я получил эту ошибку:
ошибка: Ошибка домена = NSCocoaErrorDomain Code = 516 "تعذر نقل" CFNetworkDownload_WBV95z.tmp "ىلى" Документы "نظرًا لوجود عنصر بنفس الUserInfo = {NSSourceFilePathErrorKey = / Users / ibtdi / Library / Developer / CoreSimulator / Devices / 10CB5B13-42C2-4646-934C-67FD33C948C5 / данные / Контейнеры / Data / Application / F894940C-0D55-4953-A9FA-E852C1C4B440 / TMP / CFNetworkDownload_WBV95z.tmp, NSUserStringVariant = (Переместить), NSDestinationFilePath = / Пользователи / ibtdi / Библиотека / Разработчик / CoreSimulator / Устройства / 10CB5B13-42C2-4646-934C-67FD33C948C5 / data / Containers / Data / Application / F894940C-0D55-4945240A9A9/Documents/15287105135b1e4571f2596-new.pdf, NSFilePath = / Users / ibtdi / Библиотека / Разработчик / CoreSimulator / Устройства / 10CB5B13-42C2-4646-934C-67FD33C948C5 / данные / контейнеры / данные / приложение / F894940--0D955E852C1C4B440 / tmp / CFNetworkDownload_WBV95z.tmp, NSUnderlyingError = 0x604000254460 {Ошибка домена = NSPOSIXErrorDomain Code = 17 «Файл существует»}}* эта ошибка, потому что есть файл в том же каталоге с тем же именем, я пыталсяиспользуйте responseString
вместо responseJSON
, но это не решает мою проблему, что мне делать?