Общий характер Интернета препятствует доступу приложения к жесткому диску пользователя. У нас есть доступ к локальному хранилищу, которое имеет довольно большие ограничения.
// save
localStorage.setItem('someName', JSON.stringify(someData));
// get
const someData = JSON.parse(localStorage.getItem('someName'));
//clear
localStorage.clear();
Кроме того, вам необходимо обеспечить истинную загрузку, которую пользователь решил сохранить. Вы можете в памяти изменить формат данных и передать его как application/octet-stream
, который вы можете даже протестировать, просто предоставив пользователю файл JSON с новым расширением по вашему выбору с типом содержимого application/octet-stream
, но это не гарантирует, что браузер не будет использовать интеллектуальную функцию для обнаружения и отображения встроенного JSON.
Мой первый подход заключается в том, может ли это быть сделано с локальным хранилищем, если нет, тогда я заархивирую файл в памяти и просто application/octet-stream
файл. Затем, когда пользователь загружает этот файл, я должен убедиться, что файл имеет разумный размер (не взломанный), распаковать и проверить, что это мой формат JSON, а затем продолжить.