如何将图像保存到本地存储并显示在下一页?所以,基本上,我需要上传一个图像,保存到localStorage,然后在下一页显示它。目前,我的HTML文件上传:<input type='file' id="uploadBannerImage" onchange="readURL(this);" />,它使用此函数在页面上显示图像。function readURL(input) {
document.getElementById("bannerImg").style.display = "block";
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
document.getElementById('bannerImg').src = e.target.result;
}
reader.readAsDataURL(input.files[0]);
}}该图像立即显示在页面上,供用户查看。然后要求他们填写表格的其余部分。这部分工作很完美。一旦表单完成,他们就按下“保存”按钮。一旦按下此按钮,我将所有表单输入保存为localStorage弦乐。我需要一种方法也可以将图像保存为localStorage物品。“保存”按钮也会将它们指向一个新页面。这个新页面将在表格中显示用户数据,图像位于顶部。简单明了,我需要将图像保存在localStorage一旦按下“保存”按钮,然后将下一页上的图像从localStorage.我找到了一些解决方案,比如这把小提琴和这篇文章发表在Moz:/a Hack上。.虽然我仍然非常困惑这是如何工作的,我只需要一个简单的解决方案。基本上,我只需要通过getElementByID一旦按下“保存”按钮,然后处理并保存图像。
3 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
getElementByID
localStorage
bannerImage = document.getElementById('bannerImg');imgData = getBase64Image(bannerImage);localStorage.setItem("imgData", imgData);
function getBase64Image(img) { var canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0); var dataURL = canvas.toDataURL("image/png"); return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");}
src
<img src="" id="tableBanner" />
localStorage
src
var dataImage = localStorage.getItem('imgData');bannerImg = document.getElementById('tableBanner');bannerImg.src = "data:image/png;base64," + dataImage;
慕标5832272
TA贡献1966条经验 获得超4个赞
<img data-src="path/to/image"><script> $('img').imageCaching();</script>
添加回答
举报
0/150
提交
取消