почему мой UIDocumentPickerViewController возвращает мне URL-адрес недоступен? - PullRequest
0 голосов
/ 28 марта 2020

Я использую uIdocumentPickerViewController для загрузки pdf-файла в firebase, но при попытке загрузить его я получаю сообщение об ошибке, что этот файл недоступен.

Вот код делегата моего uidocumentPickerViewController:

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {

            let storageReference = Storage.storage().reference()
            print(urls.first!)




            storageReference.child((urls.first?.deletingPathExtension().lastPathComponent)!).putFile(from: urls.first!, metadata: nil){(_, err) in
                if err != nil {
                    print((err?.localizedDescription)!)
                    return
                }

                print("success")
            }


        }

Вот ошибка, которую я получаю после выбора моего PDF-файла:

Файл по URL-адресу: file: /// private / var / mobile / Containers / Shared / AppGroup / 7BE40C45-A4B5-4EE0-8AFF-789B2F93C1F6 / Файл% 20Provider% 20Storage / Document% 20PDF.pdf недоступен.

Домен = NSCocoaErrorDomain Код = 257 xcode

1 Ответ

0 голосов
/ 28 марта 2020

Я использую UIDocumentPicker, как показано ниже, и он отлично работает:

Сначала у меня есть enum,

enum UploadFileType{
    case photo
    case file
}

Затем структура:

struct UploadFileData {
    var fileName: String
    var fileType: UploadFileType
    var fileData: NSData
}

var file: UploadFileData?

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
    let fileManager = FileManager.default
    print(fileManager.fileExists(atPath: url.path))
    let data = NSData(contentsOfFile: url.path)
    guard let doc = data else {
        //  Utility.showAlert(message: Strings.ERROR.text, title: Strings.DOCUMENT_FORMAT_NOT_SUPPORTED.text, controller: self)
        return
    }
    self.file = UploadFileData(fileName: "\(url)", fileType: .file, fileData: doc)
    guard let dataFile = self.file?.fileData as Data? else {return}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...