在JavaScript中将Base64类型转换为字符串
如何将在JavaScript中将Base64类型转换为字符串,javascript,base64,Javascript,Base64,如何将reader.readDataAsUrl()返回的base64字符串转换为外观完全相同的字符串 Javascript: function getBase64(file) { var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function () { return reader.result; }; reader.onerror = f
reader.readDataAsUrl()
返回的base64字符串转换为外观完全相同的字符串
Javascript:
function getBase64(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
return reader.result;
};
reader.onerror = function (error) {
console.log('Error: ', error);
return false;
};
} // works and returns a base64 version of the image
但是当我执行typeof(getBase64(…)
时,它表示未定义
那么,如何将这个base64“字符串”转换为实际字符串呢
背景:
我想要一个字符串,并删除结尾处的“=”作为结果
编辑/解决方案:
我不知道
reader.readAsDataURL
是一个异步函数,我不得不等待reader.onload()
根据您的代码,您可以执行类似的操作:
函数getBase64(文件,回调){
var reader=new FileReader();
reader.readAsDataURL(file.files[0]);
reader.onload=函数(){
回调(reader.result.substring(22));//将数据url格式更改为“real”base64
};
reader.onerror=函数(错误){
console.log('Error:',Error);
返回false;
};
}
document.querySelector('input[type=“file”]”)。addEventListener('change',function(){
getBase64(此,函数(结果){
var decode=atob(结果);//解码图像
var encode=btoa(decode);//在Base64中重新编码图像
console.log(结果);//Base64映像
console.log(decode);//图像已解码
console.log(encode);//Base64映像
});
});代码>
工作并返回图像的base64版本
我对此表示怀疑,该函数不返回任何内容getBase64
不返回值,因此您得到的是未定义的
,这是正常的。reader.onload
是异步的,从该函数返回不会从getBase64返回-在调用onload之前,getBase64已经没有返回任何内容(因此是异步的)-您需要一个回调如何将这个base64“字符串”转换为实际字符串
您说的“实际”是什么意思?这是一个“真正的”字符串。。。全是字符0-9、a-z、a-z、+、/和=。。。它们都是真的!