Сохранять дескриптор файла при перезагрузке страницы в Chrome с помощью FileSystemFileHandle

Как мы все знаем, браузеры НЕ поддерживают изменение пути к файлу в <input/>файл через перезагрузку страницы из соображений безопасности. Но недавно chrome 86 выпустил API доступа к файловой системе, который упрощает и позволяет пользователям читать контекст файла. Если мы соединим это с API файловой системы (не путайте их), с помощью window.requestFileSystem мы сможем сохранять файлы между загрузками, что частично решает эту проблему с переполнением стека для запоминания и повторного заполнения файла.

Интересно, можем ли мы повторно заполнить файл с помощью File SystemFileHandle при перезагрузке вкладки. Выполнение этого с помощью requestFileSystem ограничивает нас размером файла, поскольку мы копируем файл для каждого выбора. Чтобы быть конкретным, я хочу иметь возможность загружать и читать выбранный пользователем файл после перезагрузки страницы без сохранения его в localFileSystem.

Я также разместил этот вопрос в выпусках github.

1 ответ

У проблемы GitHub был ответ , репост слегка отредактированный здесь, чтобы сэкономить другим клик:

Вы можете сохранить дескриптор файла, который вы получаете от showOpenFilePickerв IndexedDB и прочитайте его при последующих загрузках страницы. В общем, для восстановления доступа может потребоваться, чтобы пользователь принял еще одно приглашение на разрешение, но в случае перезагрузки страницы текущая реализация Chrome, скорее всего, сохранит предоставление разрешения достаточно долго, чтобы не требовать дополнительных запросов. У нас есть некоторые идеи, чтобы расширить это и на восстановление сеанса, но пока ничего конкретного.

Другие вопросы по тегам