【问题标题】:Saving pdf from icloud and and converting to base64 in swift 3从 icloud 保存 pdf 并在 swift 3 中转换为 base64
【发布时间】:2017-06-15 03:07:00
【问题描述】:

我想从 icloud 中选择一个 pdf 并将其转换为 base64,以便我可以将其上传到更远的地方。我已从 icloud 中选择了该文件,但我无法将其转换为 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)


}

请帮忙。

【问题讨论】:

  • 好的,但这不是问题..我想将所选文件转换为base 64
  • 你尝试了什么? base64 是“二进制到文本”编码方案。首先,您需要 Data 的圆顶实例,接下来只需调用 data.base64EncodedData() 或 data.base64EncodedString(),这将为您提供编码数据/字符串。

标签: xcode pdf swift3 icloud uidocumentpickervc


【解决方案1】:

好的,看一些'例子'

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 位数据)。不要在你的代码中使用它...

【讨论】:

    猜你喜欢
    • 2017-03-07
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多