Показать сообщение отдельно
  #1 (permalink)  
Старый 15.05.2021, 22:26
Новичок на форуме
Отправить личное сообщение для Softy Посмотреть профиль Найти все сообщения от Softy
 
Регистрация: 10.05.2021
Сообщений: 5

filereader конвертация картинки в Base64
Нашел в интернете функцию
function toDataURL(url, callback) {
  var xhr = new XMLHttpRequest();
  xhr.onload = function() {
    var reader = new FileReader();
    reader.onloadend = function() {
      callback(reader.result);
    }
    reader.readAsDataURL(xhr.response);
  };
  xhr.open('GET', url);
  xhr.responseType = 'blob';
  xhr.send();
}

toDataURL('https://www.gravatar.com/avatar/d50c83cc0c6523b4d3f6085295c953e0', function(dataUrl) {
  console.log('RESULT:', dataUrl)
})

установил filereader
запускаю в том виде в котором дано (в начале пробовал подсунуть свою ссылку. но не работает ни так ни так.
получаю
D:\Street\Test\node_modules\filereader\FileReader.js:266
        throw new Error("cannot read as File: " + JSON.stringify(file));
        ^

Error: cannot read as File: undefined
    at readFile (D:\Street\Test\node_modules\filereader\FileReader.js:266:15)
    at FileReader.self.readAsDataURL (D:\Street\Test\node_modules\filereader\FileReader.js:292:7)
    at exports.XMLHttpRequest.xhr.onload (D:\Street\Test\build\src\store\lookup.js:333:16)
    at exports.XMLHttpRequest.dispatchEvent (D:\Street\Test\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:591:25)
    at setState (D:\Street\Test\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:614:14)
    at IncomingMessage.<anonymous> (D:\Street\Test\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:447:13)
    at IncomingMessage.emit (node:events:381:22)
    at endReadableNT (node:internal/streams/readable:1307:12)
    at processTicksAndRejections (node:internal/process/task_queues:81:21)


куда копать подскажите

Чтобы запустилось пришлось добавить
function toDataURL(url:string, callback:any) {
  var xhr = new XMLHttpRequest();
  xhr.onload = function() {
    var reader = new FileReader();
    reader.onloadend = function() {
      callback(reader.result);
    }
    reader.readAsDataURL(xhr.response);
  };
  xhr.open('GET', url);
  xhr.responseType = 'blob';
  xhr.send();
}

toDataURL('https://www.gravatar.com/avatar/d50c83cc0c6523b4d3f6085295c953e0', function(dataUrl:any) {
  logger.info('RESULT:', dataUrl)
})

Последний раз редактировалось Softy, 15.05.2021 в 22:29.
Ответить с цитированием