gpt4 book ai didi

javascript - 从服务器获取一张图片,存入localStorage,并显示出来

转载 作者:太空狗 更新时间:2023-10-29 13:22:01 29 4
gpt4 key购买 nike

这应该很简单,但是经过几个小时的努力,我仍然无法让它工作。根据 Firefox 的说法,到目前为止,我的所有尝试都导致图像“损坏或被 chop ”。

使用 jquery-ajax 调用从服务器检索图像:

 $.ajax({
async: false,
url: db[key]["DocumentLink"],
success: function (result2) {


将图片进行Base64编码,存储到localStore:
在这个例子中,我使用了 jquery base64-encoding 插件,但我已经尝试了几个。

                        var dbKey = "Doc " + db[key]["ID"] + " " + db[key]["Title"];
console.log("storing: " + db[key]["DocumentLink"] + " in " + dbKey + "\n");
localStorage.removeItem(dbKey);
var base64Image = $.base64Encode(result2);
console.log(base64Image.length);
localStorage.setItem(dbKey, base64Image);
console.log("is stored: " + db[key]["DocumentLink"] + " in " + dbKey + "\n");
}
})


显示带有数据url的图片:

function openImageFromDB(dbKey) {
console.log("Trying to display image with key " + dbKey);
var base64Img = localStorage.getItem(dbKey);
document.getElementById("documentHolder").src='data:image/jpeg;base64,' + base64Img;
}


对应的img:

 <img id="documentHolder" alt="Image view placeholder" src="" />


然而,在每次尝试时,firefox 都会显示:

Image corrupt or truncated: data:image/jpeg;base64,77+977+977+977+9a<... much longer string>


Url:指向有效的 jpeg 图像,base64Image.length 和错误消息显示 var/localStorage 实际上包含似乎是 base64 编码的数据。

有什么想法吗?

最佳答案

Javascript(AJAX 调用)

function LoadImg(filename) {
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("documentHolder").src = "data:image/png;base64," + xmlhttp.responseText;
}
};
xmlhttp.open("GET", 'load.php?LoadImg='+filename );
xmlhttp.send(null);
}

PHP ( load.php )

<?php
if (isset($_GET['LoadImg'])) {
header("Content-Type: image/png");
$file = file_get_contents($_GET['LoadImg']);
echo base64_encode($file);
}
?>

阅读本文可能对您有所帮助:

PS:可能是你的Base64不对?

关于javascript - 从服务器获取一张图片,存入localStorage,并显示出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5363957/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com