我需要上传一个输入文件的图像,将其转换为base64,并使用ajax发送到一个应用程序接口。我可以转换图像,但不能将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镜像。
因此,我尝试将其保存到一个变量中,将this:console.log(fileLoadedEvent.target.result);
更改为this:let pictureEnconde = fileLoadedEvent.target.result;
,但它返回未定义。我不知道发生了什么:)我将非常感谢你的帮助。
发布于 2018-07-17 08:00:41
下面是一个可能会对您有所帮助的示例:
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])">
https://stackoverflow.com/questions/51371433
复制相似问题