2017-06-15 89 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比特)。不要在你的代码中使用这个...

相关问题