在angular 2中将图像转换为base64,图像是从本地上传的。目前我正在使用fileLoadedEvent.target.result。问题在于,当我通过REST服务将此base64字符串发送到java时,它无法解码。当我尝试使用在线编码器 - 解码器处理此base64字符串时,也无法看到已解码的图像。我也尝试过使用canvas。结果不正确。有一件事是肯定的,我得到的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);
}
}