Javascript 如何获取base 64代码并将其存储在cookie中
我想要一段代码,当我选择一个文件或上传并将其存储在Cookie中时,获取图像的基本64代码。我想要将此图像传递到弹出窗口,而不将其上传到服务器上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);
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