Javascript 如何获取base 64代码并将其存储在cookie中

Javascript 如何获取base 64代码并将其存储在cookie中,javascript,jquery,Javascript,Jquery,我想要一段代码,当我选择一个文件或上传并将其存储在Cookie中时,获取图像的基本64代码。我想要将此图像传递到弹出窗口,而不将其上传到服务器上 function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); //var allcookies = document.cookie; //alert("all cookie"+allcookies);

我想要一段代码,当我选择一个文件或上传并将其存储在Cookie中时,获取图像的基本64代码。我想要将此图像传递到弹出窗口,而不将其上传到服务器上

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    //var allcookies = document.cookie;
    //alert("all cookie"+allcookies);
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}


function mh_realtime_preview(input,input_id) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();

        reader.onload = function (e) {
            document.cookie= "img1_code = " + e.target.result;
            document.cookie="test=value";
        }

        reader.readAsDataURL(input.files[0]);
    }
}
jQuery(document).ready(function(e) {
    $("#imgInp").change(function(){
        mh_realtime_preview(this,'#img_id');
        setTimeout( function() {alert(readCookie("img1_code"));} ,1000);
    }); 
});


</script>
</head>
<body>
<input type="file" id="imgInp"/>

</body>
</html>

我一点也不知道那些coockies

但是对于base64,javascript中有一个内置函数

1btoa:-编码

2atob:-解码


Cookie不用于存储图像、声音等。用于存储Cookie的空间通常是有限的,用户可以在每次会话后清除Cookie

除此之外,正如斯宾德已经指出的,cookie数据总是在每次请求时传递给服务器


如果您只想将base64图像从窗口传递给其弹出子窗口,那么您应该使用JS var来保留base64字符串,然后在弹出窗口上使用数据动态创建img元素

我会将数据存储在javascript变量中,并在需要时在弹出窗口中使用该变量

e、 g


您可以使用会话存储代替cookies来存储数据

代码来设置数据

sessionStorage.setItem('item-name','item-data');
sessionStorage.getItem('item-name');
获取数据的代码

sessionStorage.setItem('item-name','item-data');
sessionStorage.getItem('item-name');
注意:这是基于HTML5的存储对象,因此某些浏览器可能不支持它


如果要永久保存,也可以使用localStorage而不是sessionStorage。

如果设置了包含此数据的cookie,则向主机发出的每个请求都将发送cookie数据,直到您将其删除为止。这就是饼干的用途。你确定这就是你想要的吗?这是一种很不寻常的方法。一个更好的问题是如何将数据传递到用window.open打开的窗口。一个当链接被删除时没有任何意义的答案是无效的。您应该用一个简单的代码示例替换链接。B