#javascript
Вопрос:
Я использую ниже 2 метода, но я не могу получить из него строку base64.
function convertFileToBase64(file) { return new Promise((resolve, reject) =gt; { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () =gt; resolve(reader.result); reader.onerror = reject; }); } function previewProductImages(files){ let preveiwImagesTemplate = []; for(let i=0; ilt;files.length; i ){ const uploadedImageBase64 = convertFileToBase64(files[i]); /// WANT BASE64 HERE So I can pass that to another method } }
Замена или лучшие подходы приветствуются.
Ответ №1:
Сначала вы должны назначить onload
свойству обработчик, а затем вызвать readAsDataURL()
метод, а не наоборот.
function readFile(file) { return new Promise((resolve) =gt; { if (file.size) { const reader = new FileReader(); reader.onload = (e) =gt; { resolve({ binary: file, b64: e.target.result, }); }; reader.readAsDataURL(file); } }); }