当前位置: 首页 > 知识库问答 >
问题:

如何将图像保存到localStorage并显示在下一页?

萧宏远
2023-03-14

所以,基本上,我需要上传单个图像,将其保存到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项。

save按钮还将引导他们进入一个新页面。这个新页面将在一个表中显示用户的数据,图像位于顶部。

所以简单明了,我需要在按下“保存”按钮后将图像保存在localstorage中,然后在下一页从localstorage中借用图像。

我在moz://a hacks上找到了一些解决方案,比如这把小提琴和这篇文章。

虽然我仍然非常困惑这是如何工作的,我只需要一个简单的解决方案。基本上,一旦按下“保存”按钮,我只需要通过getElementByID找到图像,然后处理并保存图像。

共有2个答案

何玉韵
2023-03-14

我在localStorage JQueryImageCaching中编写了一个保存图像的2.2KB库:

<img data-src="path/to/image">
<script>
    $('img').imageCaching();
</script>
端木令
2023-03-14

谁也需要解决这个问题:

首先,我使用getElementByID获取图像,并将图像保存为Base64。然后将Base64字符串保存为localstorage值。

bannerImage = document.getElementById('bannerImg');
imgData = getBase64Image(bannerImage);
localStorage.setItem("imgData", imgData);

下面是将图像转换为Base64字符串的函数

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获取Base64字符串,并将其应用到带有我创建的空白src的图像:

var dataImage = localStorage.getItem('imgData');
bannerImg = document.getElementById('tableBanner');
bannerImg.src = "data:image/png;base64," + dataImage;

在相当多的不同浏览器和版本中测试了它,看起来工作得相当不错。

 类似资料:
  • 问题内容: 因此,基本上,我需要上传单个图像,将其保存到localStorage,然后在下一页上显示。 目前,我已经上传了HTML文件: 使用该功能在页面上显示图像 该图像立即显示在页面上,供用户查看。然后要求他们填写表格的其余部分。这部分工作正常。 表格填写完毕后,他们将按“保存”按钮。按下此按钮后,我将所有表单输入另存为字符串。我需要一种将图像另存为项目的方法。 保存按钮还会将它们定向到新页面

  • 问题内容: 在我的应用程序中,我在div中有一个图像,一个按钮。 我想旋转显示的图像,并在使用jquery单击按钮时保存旋转的图像。 我已经使用了代码: http://code.google.com/p/jquery-rotate/ 和jQuery代码: html代码: 当我使用上述代码时,有两个图像,一个是旧图像,另一个是旋转图像。 在这里我想旋转相同的图像并仅显示旋转的图像。并将旋转的图像保存

  • 它将我带到图库以选择图像,但未显示在应用程序中,当单击上传按钮时,它只是一个空白图像视图 < li >我的Java代码 < li>XML代码 运行时显示此错误 java.lang.IllegalArgumentException:uri不能为空 以下两处给出错误的行显示了uri错误

  • 问题内容: 我需要上传,显示并保存图像,以免刷新本地主机时不会丢失它。这需要使用“上传”按钮来完成,该按钮提示选择文件。 我正在使用node.js并表示服务器端代码。 问题答案: 首先,您应该制作一个包含文件input元素的HTML表单。您还需要将表单的 enctype 属性设置为 multipart / form- data : 假设在 index.html 中定义了表单,该表单存储在相对于脚本

  • 我试图在我的readme.md中显示两张照片之间的比较,这就是为什么我想并排显示它们。以下是这两个图像当前的放置方式。我想并排显示两个日光化配色方案,而不是顶部和底部。非常感谢您的帮助,谢谢!

  • 问题内容: 我必须使用JavaScript创建一个表单,用户将上载JPG文件并与其他信息(例如名称,电子邮件等)一起提交。当用户单击提交时,表单中的所有信息将被加载到值对象中。对于图像文件,我将其设置为。 所以假设: 我还设置了一个servlet来处理提交,但是我不确定如何开始。上传如何进行?用户提交时,如何获取图像信息?这是屏幕截图:http : //imageshack.us/f/32/776