将blob转换为base64这是我要Blob对Base64字符串执行的代码的代码段:这个注释部分有效,当由此生成的URL设置为img src时,它会显示图像:var blob = items[i].getAsFile();//var URLObj = window.URL || window.webkitURL;//var source = URLObj.createObjectURL(blob);//console.log("image source=" + source);var reader = new FileReader();reader.onload = function(event){console.log(event.target.result)}; // data url!var source = reader.readAsBinaryString(blob);问题是代码越低,生成的源变量为null更新:有没有更简单的方法来使用JQuery从Blob文件创建Base64字符串,如上面的代码?
3 回答
动漫人物
TA贡献1815条经验 获得超10个赞
这对我有用:
var blobToBase64 = function(blob, callback) { var reader = new FileReader(); reader.onload = function() { var dataUrl = reader.result; var base64 = dataUrl.split(',')[1]; callback(base64); }; reader.readAsDataURL(blob);};
桃花长相依
TA贡献1860条经验 获得超8个赞
所以问题是你想要上传一个基础64图像,你有一个blob网址。现在,适用于所有html 5浏览器的答案是:执行:
var fileInput = document.getElementById('myFileInputTag'); var preview = document.getElementById('myImgTag'); fileInput.addEventListener('change', function (e) { var url = URL.createObjectURL(e.target.files[0]); preview.setAttribute('src', url); });function Upload(){ // preview can be image object or image element var myCanvas = document.getElementById('MyCanvas'); var ctx = myCanvas.getContext('2d'); ctx.drawImage(preview, 0,0); var base64Str = myCanvas.toDataURL(); $.ajax({ url: '/PathToServer', method: 'POST', data: { imageString: base64Str }, success: function(data) { if(data && data.Success) {}}, error: function(a,b,c){alert(c);} }); }
添加回答
举报
0/150
提交
取消