【发布时间】:2020-07-18 05:06:27
【问题描述】:
将图片转换为角度2中的base64,图片是从本地上传的。当前正在使用 fileLoadedEvent.target.result。问题是,当我通过 REST 服务将此 base64 字符串发送到 java 时,它无法对其进行解码。当我用免费的在线编码器-解码器尝试这个 base64 字符串时,我也看不到解码后的图像。我也尝试使用画布。我没有得到正确的结果。一件事是肯定得到的base64字符串不是正确的,我需要为此添加任何包吗?或者在 angular 2 中,是否有任何特殊的方法可以将图像编码为 base64,就像在 angular 1 - angular-base64-upload 包中一样。
请在下面找到我的示例代码
onFileChangeEncodeImageFileAsURL(event:any,imgLogoUpload:any,imageForLogo:any,imageDiv:any)
{
var filesSelected = imgLogoUpload.files;
var self = this;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
//Reading Image file, encode and display
var reader: FileReader = new FileReader();
reader.onloadend = function(fileLoadedEvent:any) {
//SECOND METHO
var imgSrcData = fileLoadedEvent.target.result; // <--- data: base64
var newImage = imageForLogo;
newImage.src = imgSrcData;
imageDiv.innerHTML = newImage.outerHTML;
}
reader.readAsDataURL(fileToLoad);
}
}
【问题讨论】:
-
需要从输入文件控件上传图片到后端吗?
-
啊,好吧,我想这是区域问题...您对 innerHtml 的更改与您通常对 angular2 所做的不同。
-
尝试在这个问题中做同样的事情:stackoverflow.com/questions/42482528/… 当你有一个回调 onloadend... 让它在区域内,然后 angular2 会知道应该更新视图
标签: javascript java jquery angular typescript