Если дело происходит в браузере, можно файлы сохранить в
IndexedDB и они там будут оставаться даже после перезагрузки страницы. Для сохранения
file в
IndexedDB сначала подключайте на станице библиотеку
localforage:
<script src="https://cdnjs.cloudflare.com/ajax/libs/localforage/1.9.0/localforage.min.js"></script>
Далее уже можно спокойно закинуть файл в память браузер вот так:
async function saveFile(file) {
var result = await localforage.setItem('file', file);
console.log('Файл сохранён:');
console.dir(result);
}
Вызывайте функцию saveFile передав ему аргументом тот файл, который надо сохранить.
Чтобы потом извлечь этот файл из памяти и вставить в тег
src у картинки:
async function getFile() {
var file = await localforage.getItem('file');
document.querySelectror('img').src = URL.createObjectURL(file);
console.log('Файл вставлен:');
console.dir(file);
}
Просто вызывайте функцию getFile.
Подробнее о библиотеке
localforage можно почитать здесь:
https://html5.by/blog/localforage/
Выше просто примеры. Чтобы допилить под себя рекомендую ознакомится с тем, что такое промисы и чем отличаются асинхронные функции от обычных + постараться понять, как работает async / await.