【问题标题】:Alamofire Not Downloading PDFsAlamofire 不下载 PDF
【发布时间】:2017-03-15 18:03:43
【问题描述】:

我正在尝试将 PDF 下载到文档目录。请求成功,但是请求完成后文档目录中不存在该文件。

let destination = DownloadRequest.suggestedDownloadDestination(for: .documentDirectory)

let documentsDirectory = FileManager.SearchPathDirectory.documentDirectory
let userDomainMask = FileManager.SearchPathDomainMask.userDomainMask
let paths = NSSearchPathForDirectoriesInDomains(documentsDirectory, userDomainMask, true)

if paths.first != nil 
{

    Alamofire.download("http://www.test.com/pdfs/sample.pdf", to: destination).responseData 
    { response in
        if response.result.isFailure
        {
            print("\(response.error!)")
        }
    }
}

【问题讨论】:

  • 你怎么知道它不在文档目录上?
  • @hasan83 我已经检查了应用程序的 Documents 目录,在模拟器中,在 Mac OSX 终端中。
  • @bkhosh2 这可能会帮助你stackoverflow.com/q/41136560/6433023

标签: swift swift3 alamofire


【解决方案1】:

以下内容对我有用:

let fileExtension: String = fileUrl!.pathExtension
let documentURL: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let filePath = documentURL.appendingPathComponent("\(disk_file_name!).\(fileExtension)")

let destination: DownloadRequest.DownloadFileDestination = { _, _ in
     return (filePath, [.removePreviousFile])
}

Alamofire.download(URL(string: fileUrl)!, to: destination) ...

【讨论】:

  • 我试过你的代码。请求成功完成,但不幸的是,Documents 目录中仍然没有 PDF。
  • 为什么你只是尝试通过代码检查它是否存在。和它。也许还有其他东西阻止你找到它。那很可能。但它保存在正确的位置。
  • filePath URL 被编码是否会影响结果?例如,文件路径中的空格“”正在更改为“%20”。
  • 如果你问它是否影响下载过程。它没有。
猜你喜欢
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多