我需要通过输入文件上传图像,将其转换为base64并使用ajax将其发送到API。我可以转换图像,但是不能将base64返回到创建json的变量中。这是我的代码:
HTML
<input id="picture" type="file">
JS
const picture = document.getElementById("picture")
function loadImageFileAsURL() {
var filesSelected = picture.files;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
console.log(fileLoadedEvent.target.result);
}
fileReader.readAsDataURL(fileToLoad);
}
}
picture.addEventListener('change', function() {
loadImageFileAsURL()
})
它将在控制台中返回base64映像。
因此,我尝试将其保存到一个变量中,将其更改为:console.log(fileLoadedEvent.target.result);
,let pictureEnconde = fileLoadedEvent.target.result;
却返回未定义。我不知道这是怎么回事:(我会感谢您的帮助。
答案 0 :(得分:0)
以下是一个示例,可以帮助您:
var file=null;
function toBase64(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
file=reader.result
console.log(file);
};
}
<input type="file" onchange="toBase64(this.files[0])">