Загрузите PDF-файл в хранилище FirebaseIOS

Программируем под IOS
Ответить
Гость
 Загрузите PDF-файл в хранилище Firebase

Сообщение Гость »


Привет всем, я пытаюсь импортировать файл PDF из icloud через свое приложение, используя модификатор .fileImporter, а затем я хотел бы сохранить его в Firebase Storage. .

Похоже, что получение файла через .fileImporter не вызывает проблем, но когда я пытаюсь сохранить (через URL-адрес, полученный из .fileImporter), сохранение в >Firebase Storage не работает, и моя консоль выдает следующую ошибку:

Необязательно («Файл по URL-адресу: Private/var/mobile/Library/Mobile%20Documents/com~apple~CloudDocs/Condivisa/Archivio%20Documenti/Biglietti366527.pdf недоступен. Убедитесь, что URL-адрес файла не является каталогом, символической ссылкой или недопустимым URL-адресом.")

Где я делаю не так?

Я бы хотел, чтобы пользователь моего приложения мог получить файл, взятый из любого облака, на которое он подписан, и сохранить его в Firebase Storage, чтобы он всегда был доступен в моем приложении.

Это код, который я использую. Можете ли вы мне чем-нибудь помочь?
struct ImportFile: Просмотр { @State Private var showFileImporter = false частная вар handlePickedPDF: (URL) -> Void = {_ in } var body: some View { VStack(интервал: 24) { ScrollView(.horizontal) { LazyHGrid(rows: [.init(.adaptive(минимум: 130))], содержимое: { ForEach(0..) Кнопка("ФАЙЛ") { showFileImporter = правда } .fileImporter( isPresented: $showFileImporter, разрешенные типы контента: [.pdf], позволяетMultipleSelection: true ) { результат в результат переключения { случай .success(пусть файлы): files.forEach { файл в // получаем доступ к каталогу let gotAccess = file.startAccessingSecurityScopedResource() если !gotAccess {возврат } // доступ к URL-адресу каталога // (прочитать шаблоны в каталоге, сделать закладку и т.д.) handlePickedPDF (файл) // освобождаем доступ file.stopAccessingSecurityScopedResource() печать(файл.absoluteURL) // Создаем ссылку на хранилище из нашей службы хранения пусть StorageRef = Storage.storage().reference() // Файл, расположенный на диске пусть localFile = URL (строка: file.absoluteString)! // Создаем ссылку на файл, который вы хотите загрузить пусть RiversRef = StorageRef.child("doc/") // Загрузите файл по пути "images/rivers.jpg" let uploadTask = RiversRef.putFile(from: localFile, метаданные: ноль) {метаданные, ошибка в охранник пусть метаданные = метаданные еще { // Ой-ой, произошла ошибка! возвращаться } // Метаданные содержат метаданные файла, такие как размер и тип содержимого. пусть размер = метаданные.размер // Вы также можете получить доступ к URL-адресу загрузки после загрузки. RiversRef.downloadURL { (url, ошибка) в охранник пусть downloadURL = URL еще { // Ой-ой, произошла ошибка! возвращаться } } } } случай .failure(пусть ошибка): // обрабатываем ошибку печать (ошибка) } } } }) } .scrollIndicators(.скрытый) } } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»