Получить строку Base64 из типа ввода: файл? - PullRequest
0 голосов
/ 25 апреля 2018

Как получить строку Base64 из входного файла .pdf.У меня есть эта функция, но я не возвращаю строку base64.Допустимые файлы: .pdf
Мне нужна база STRING64 в переменной
Мой код:

<input type="file" id="files" name="files" multiple>

Код JS

var base64 =  getBase64(document.getElementById('files').files[0])
function getBase64(file) {           
    var reader = new FileReader();   
    reader.readAsDataURL(file);  
    reader.onload = function () {  
        console.log(reader.result);  
        return(reader.result); //THIS NO RETURN NOTHING. WHY?
    };  
    reader.onerror = function (error) {  
        console.log('Error: ', error);  
    };   
}

1 Ответ

0 голосов
/ 25 апреля 2018

Я проверил это, оно работает, вы должны добавить его в событие изменения, вы вызываете getbase64 до того, как что-то появится:

https://jsfiddle.net/ibowankenobi/fcgL3dn8/

document.getElementsByTagName("input")[0].addEventListener("change",getBase64,false);

var _file; 

function getBase64() {     
                var file = this.files[0];
                var reader = new FileReader();   
                reader.readAsDataURL(file);  
                reader.onload = function () {  
                    console.log(reader.result); 
                    _file = reader.result; 
                    //don't do the below. It is pointless. Either assign the result to a variable within scope or call a callback
                    //return(reader.result); //THIS NO RETURN NOTHING. WHY?
                };  
                reader.onerror = function (error) {  
                    console.log('Error: ', error);  
                  };   
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...