gpt4 book ai didi

javascript - "Upload"本地文件到 localStorage(没有服务器交互)

转载 作者:行者123 更新时间:2023-11-30 11:23:05 25 4
gpt4 key购买 nike

我正要问“如何“下载”localStorage?幸好找到了this我原来的问题就解决了。

那么,我怎样才能允许用户将本地文件“上传”到 localStorage 或一般的 javascript?我不是在询问在后台访问本地文件的方式,这显然是被禁止的;我希望用户明确选择他们的本地文件。

例如,如果用户有save.json:

{
"hp": 32,
"maxHp": 50,
"mp": 11,
"maxMp": 23
}

如何通过仅要求用户上传此文件来将其设置为 localStorage?

最佳答案

以下是用户上传 save.json 文件的示例。您可以在浏览器中打开它并上传您自己的 save.json 文件。刷新页面并检查控制台以查看打印出来的保存的 json。我已经包含了 fiddle ,但在 JSFiddle 中使用 localStorage 存在问题。

<html>
<input type="file" name="files[]" id="fileUpload">
<script type="text/javascript">
(function() {
// Key for local storage, use to save and access.
var FILE_KEY = 'save.json';

// fire processUpload when the user uploads a file.
document.querySelector('#fileUpload').addEventListener('change', handleFileUpload, false);

// Log any previously saved file.
console.log('previous save: ', retrieveSave());

// Setup file reading
var reader = new FileReader();
reader.onload = handleFileRead;

function handleFileUpload(event) {
var file = event.target.files[0];
reader.readAsText(file); // fires onload when done.
}

function handleFileRead(event) {
var save = JSON.parse(event.target.result);
console.log(save) // {hp: 32, maxHp: 50, mp: 11, maxMp: 23}
window.localStorage.setItem(FILE_KEY, JSON.stringify(save));
}

function retrieveSave() {
return JSON.parse(localStorage.getItem(FILE_KEY))
}
})();
</script>
</html>

关于javascript - "Upload"本地文件到 localStorage(没有服务器交互),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49087286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com