ios 在SwiftUI中将PDF转换为Base64

ss2ws0br  于 2022-11-19  发布在  iOS
关注(0)|答案(1)|浏览(162)

我正在获取PDF数据。它为我提供了URL,当我将其转换为base64时。这是我得到的结果:
无法打开文件“file.pdf”,因为您没有查看该文件的权限。
我不明白为什么它给这个。这是我如何得到pdf文件网址:

@State var openPDF = false
 @State var fileName = ""
 @State var pdfFile : URL?

  var body: some View {

   Button {
        self.openPDF.toggle()
    }, label {
         
          Text("Add Attachment")
     }.fileImporter(isPresented: $vm.openPDF, allowedContentTypes: [.pdf]) { result in
                    
            do {

                let fileURL = try result.get()
                print(fileURL)

                self.fileName = fileURL.lastPathComponent

                self.pdfFile = fileURL
              } catch {
                    print("error getting documents")
                    print(error.localizedDescription)
                   }
             }
}

下面是我将其转换为base64的方法:

do {
            
        let filePath = pdfFile
        let fileData = try Data.init(contentsOf: filePath!)
        let fileStream:String = fileData.base64EncodedString()
        print(fileStream)
    } catch {
        print("error")
        print(error.localizedDescription)
   }

在这个do-catch中,它给出了错误“这个文件不能被打开,因为你没有权限。

5us2dqdw

5us2dqdw1#

执行此操作可将PDF转换为Base64字符串:

fileapp.startAccessingSecurityScopedResource() {
            defer {
                DispatchQueue.main.async {
                    fileapp.stopAccessingSecurityScopedResource()
                }
            }
            
            do {
                
                let fileData = try Data.init(contentsOf: fileapp)
                let fileStream:String = fileData.base64EncodedString()
                print(fileStream)
                base64PDF = fileStream
            } catch {
                print("error")
                print(error.localizedDescription)
            }
        }

相关问题