javascript - 将输入图像保存在 localStorage 中,然后使用 JS 检索它
问题描述
我正在上传带有其他信息的图像,然后我想将它们一起保存(可能在一个数组中)在 localStorage 中。
如何在输入中检索该图像并将其与仅使用 JS 的其他信息一起保存?我用来上传图片的代码如下(我从另一个 Stackoverflow 问题中得到它,它也可以工作)。
function onFileSelected(event) {
var selectedFile = event.target.files[0];
var reader = new FileReader();
var imgtag = document.getElementById("food");
imgtag.title = selectedFile.name;
reader.onload = function(event) {
imgtag.src = event.target.result;
};
reader.readAsDataURL(selectedFile);
}
html:
<div class="immagine_cibo">
<input type="file" onchange="onFileSelected(event)">
<img id="food" height="200" width="250">
</div>
解决方案
如果您有“imgtag.src = event.target.result”,则 event.target.result 是一串 base64 编码数据。您可以使用 localStorage.setItem('myPic', event.target.result); 将其保存在本地存储中;
如果要保存数组,则需要先对其进行 json.encode,因为 localStorage 只能保存字符串。
推荐阅读
- php - 不允许在 php preg_match regexp 中使用免费电话号码
- php - 拉拉维尔。存储:FTP、S3 或?对于非常大的文件
- service - azure-active-directory 生成 AAD 服务主体密钥
- java - 使用 XY 坐标获取视图中坐标的高度 - Android
- java - 从 JSONArray 中提取字符串
- kubernetes - 在 Prometheus 中对两个不同的指标进行分组后如何划分?
- reactjs - 当组件使用事件时使用 Enzyme 测试 React 组件
- python - 通过单击另一个复选框禁用复选框 (HTML/DJANGO)
- angular - 错误 TS2345:“SpyObj”类型的参数
' 不可分配给“路由器”类型的参数 - angularjs - 即使使用点符号,两种方式绑定也不起作用