2017-06-15 84 views
0

我想從icloud中選擇pdf並將其轉換爲base64,以便我可以將其上傳到更遠的位置。我從icloud中選擇了該文件,但我無法把它轉換成base64將icloud保存爲pdf並在swift中轉換爲base64

@IBAction func PdfBtn(_ sender: Any) { 

    let importMenu = UIDocumentMenuViewController(documentTypes: ["public.composite-content"], in: .import) 
    importMenu.delegate = self 
    present(importMenu, animated: true, completion: nil) 

} 


@available(iOS 8.0, *) 
public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) { 


    let link = url as URL 
    print("The Url is : \(link)") 






} 

@available(iOS 8.0, *) 
public func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) { 

    documentPicker.delegate = self 
    present(documentPicker, animated: true, completion: nil) 


} 





func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) { 

    print("we cancelled") 

    dismiss(animated: true, completion: nil) 


} 

請大家幫忙。

+0

好吧,但這不是問題..我想要隱藏所選文件以64爲基礎 –

+0

你試過了什麼? base64是'二進制到文本'編碼方案。首先,你需要Data的dome實例,然後使用調用data.base64EncodedData()或data.base64EncodedString(),它會給你編碼的數據/字符串。 – user3441734

回答

0

確定,看到一些「示例」

let url = FileManager.default.homeDirectoryForCurrentUser.appendingPathComponent("Documents/hello.pdf") 

let data = try! Data(contentsOf: url) 

let base64Data = data.base64EncodedData() 
let str0 = String(bytes: data[0..<9], encoding: .ascii) // "%PDF-1.3\n" 
let str1 = String(bytes: base64Data[0..<12], encoding: .ascii) // "JVBERi0xLjMK" 

let base64String = data.base64EncodedString() 
let str2 = String(base64String.characters.prefix(12)) // "JVBERi0xLjMK" 

let data2 = Data(base64Encoded: str2) 
let str3 = String(bytes: data2!, encoding: .ascii) // "%PDF-1.3\n" 

請,看到我硬編碼的字節和數量的數量的字符,使一些有用的結果(每個的base64數字表示數據的準確6比特)。不要在你的代碼中使用這個...

相關問題