Alamofire 不下载 PDF

Posted

技术标签:

【中文标题】Alamofire 不下载 PDF【英文标题】:Alamofire Not Downloading PDFs 【发布时间】: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 这可能会帮助你***.com/q/41136560/6433023 【参考方案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”。 如果你问它是否影响下载过程。它没有。

以上是关于Alamofire 不下载 PDF的主要内容,如果未能解决你的问题,请参考以下文章

使用 Alamofire 4 (Swift 3) 下载文件的路径

使用 Alamofire 的下载速率

将使用 Alamofire 下载的文件访问到具有未知文件名的下载目录

不使用框架手动集成 Alamofire 2

swift Alamofire+ObjectMapper——swift(学习九)

Alamofire:图像下载请求问题