2017-09-14 140 views
1

如何使用Swift 3.0和Alamofire在iOS下载PDF文件。我可以使用nsurlsession获取网址。但我正在寻找alamofire的代码。 请看我的代码。如何从json在swift和alamofire下载pdf文件到ios中?

func downloadPdffile(_ sender : UIButton) { 
    print(sender.tag) 
    print("ARRAY VALUES FROM CELL",totalSyllabusArray.object(at: sender.tag)) 
    var localDic :NSDictionary! 
    localDic = totalSyllabusArray.object(at: sender.tag) as! NSDictionary 
    let filepath = localDic["filepath"] as! String 
    print("pressed ") 
    let strURL1:String = FETCH_InMegh_Image_BaseURL + filepath 
    print("strURL1 is ",strURL1) 
    let pathURL = URL(string: strURL1)! 
    let sessionConfig = URLSessionConfiguration.default 
    let session = URLSession(configuration: sessionConfig) 
    let request = try! URLRequest(url: pathURL, method: .get) 
    let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in 
     if let tempLocalUrl = tempLocalUrl, error == nil { 
      // Success 
      if let statusCode = (response as? HTTPURLResponse)?.statusCode { 
       print("Success: \(statusCode)") 
       print("tempLocalUrl: \(tempLocalUrl)") 
           } else { 
       print("Failure: %@", error?.localizedDescription); 
      } 
     } 
    } 
} 

}

+0

如何问一个问题。您可以为自己运行搜索。但是你正在寻求一个教程,图书馆,这不是一个可以接受的问题。 –

+0

我没有让你@ElTomato – Ram

回答

2

定义您destination类似的东西:

let destination: DownloadRequest.DownloadFileDestination = { _, _ in 
    let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] 
    let fileURL = documentsURL.appendingPathComponent("your.pdf") 
    return (fileURL, [.removePreviousFile, .createIntermediateDirectories]) 
} 

再叫Alamofire.download与您的网址和目标:

Alamofire.download(yourUrl), to: destination).response { response in 
     let parentView = (self.superview?.superview as! UITableView).dataSource as! ProcedureViewController 
     parentView.hideActivityIndicator() 
     if response.error == nil, let _ = response.destinationURL?.path { 
      //open pdf in UIDocumentInteractionController 
      self.docController = UIDocumentInteractionController.init(url: response.destinationURL!) 
      self.docController?.delegate = self.delegate! 
      self.docController?.name = "" 
      self.docController?.presentOptionsMenu(from: self.parentView!.bounds, in: self.parentView!, animated: true) 
     } 
    } 
+0

谢谢你回答我。 – Ram