从Url或路径获取文件?

时间:2018-01-29 05:38:53

标签: ios swift uidocumentpickerviewcontroller

我已整合UIDocumentPickerDelegateUIDocumentMenuDelegate我有一个问题是从URL或DocumentPicker获取文件。如何在iOS swift中解决此问题?

2 个答案:

答案 0 :(得分:2)

  

您可以轻松获取文件,

如果你需要获得图像

    @IBAction func btn_Handler_iCloud(_ sender: Any) {
        let doc = UIDocumentMenuViewController(documentTypes: [String(kUTTypeImage)], in: .import)
        doc.delegate = self
        doc.modalPresentationStyle = .formSheet
        self.present(doc, animated: true, completion: nil)
    }

    func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
        documentPicker.delegate = self
        present(documentPicker, animated: true, completion: nil)
    }

    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
        let data = try! Data(contentsOf: urls[0])
        imageview_Buaty.image = UIImage.init(data: data)
    }

    func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
        dismiss(animated: true, completion: nil)
    }

答案 1 :(得分:0)

从UIDocumentPickerViewController获取文档URL或数据:

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) { 
    // Available from iOS 8.0 to iOS 11.0
    self.handleFileSelection(inUrl: url)// Here url is document's URL
}

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
    // Available from iOS 11.0
    self.handleFileSelection(inUrl: urls.first!)  // Here urls is array of URLs
}

private func handleFileSelection(inUrl:URL) -> Void {
    do { 
     // inUrl is the document's URL
        let data = try Data(contentsOf: inUrl) // Getting file data here
    } catch {
        dLog(message: "document loading error")
    }
}